shell小工具

发布时间 2023-03-22 21:10:57作者: 村尚chun叔

grep--行过滤工具,用于根据关键字进行过滤

grep [选项] '关键字' 文件名

选项:

-i:不区分大小写
-v:查找不包含指定内容的行,反向选择
-w:按单词搜索
-o:打印匹配关键字
-c:统计匹配到的行数
-n:显示行号
-r:逐层遍历目录查找
-A:显示匹配行及后面多少行
-B:显示匹配行及前面多少行
-C: 显示匹配行前后多少行
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e: 使用正则匹配
-E:使用扩展正则匹配
^key:以关键字开头
key$:以关键字结尾
^$:匹配空行
--color=auto :可以将找到的关键词部分加上颜色的显示 设置别名vi /etc/bashrc alias grep='grep --color=auto'

cut:列截取工具,用于列的截取cut:列截取工具,用于列的截取

cut [选项] 文件名

选项:

-c:以字符为单位进行分割,截取
-d:自定义分隔符,默认为制表符\t
-f:与-d一起使用,指定截取哪个区域
cut -d: -f1 1.txt 以:冒号分割,截取第1列内容
cut -d: -f1,6,7 1.txt 以:冒号分割,截取第1,6,7列内容
cut -c4 1.txt 截取文件中每行第4个字符
cut -c1-4 1.txt 截取文件中每行的1-4个字符
cut -c4-10 1.txt 截取文件中每行的4-10个字符
cut -c5- 1.txt 从第5个字符开始截取后面所有字符

sort:用于排序,将文件的每一行作为一个单位,从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出

sort [选项] 文件名

选项:

-u:去除重复行
-r:降序排列,默认是升序
-o: 将排序结果输出到文件中,类似重定向符号>
-n:以数字排序,默认是按字符排序
-t:分隔符
-k:第N列
-b:忽略前导空格
-R:随机排序,每次运行的结果均不同

uniq:用于去除连续的重复行

uniq [选项] 文件名

选项:

-i: 忽略大小写
-c: 统计重复行次数
-d:只显示重复行

tee:从标准输入读取并写入到标准输出和文件,即:双向覆盖重定向(屏幕输出|文本输入)

-a 双向追加重定向
echo hello world|tee file1 覆盖重定向
echo 999|tee -a file1 追加重定向

diff:用于逐行比较文件的不同

diff [选项] 文件1 文件2

选项:

-b:不检查空格
-B:不检查空白行
-i:不检查大小写
-w:忽略所有的空格
--normal:正常格式显示(默认)
-c:上下文格式显示
-u:合并格式显示

paste:用于合并文件行

-d:自定义间隔符,默认是tab
-s:串行处理,非并行

tr:用于字符转换,替换和删除;主要用于删除文件中控制字符或进行字符转换

-d 删除字符串1中所有输入字符。 tr -d ':/0-9' < 1.txt
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串 cat 2.txt|tr -s 'o'