文章目录
一、grep 工具
1. 简介
grep 是行过滤工具,用于根据关键字进行行过滤。
2. 语法 & 选项
语法:
grep [选项] '关键字' <文件名>
选项:
'-i: 不区分大小写'
-v: 查找不包含指定内容的行(反向选择)
'-w: 全字匹配(words only)'
-o: 打印匹配关键字
-c: 统计匹配到的次数
'-n: 显示行号'
'-r: 逐层遍历目录查找'
-A: 显示匹配行及后面多少行
-B: 显示匹配行及前面多少行
-C: 显示匹配行前后多少行
-l: 只列出匹配的文件名
-L: 列出不匹配的文件名(-l 求反)
'-e: 使用正则匹配'
'-E: 使用扩展正则匹配'
^key : 以关键字开头
key$ : 以关键字结尾
^$ : 匹配空行
--color=auto : 可以将找到的关键词部分加上颜色的显示
二、cut 工具
1. 简介
cut 是列截取工具,用于列截取。
2. 语法 & 选项
语法:
cut [选项] <文件名>
选项:
-c: 以字符为单位进行分割,截取
-d: 自定义分隔符,默认为制表符'\t'
-f: 与 -d 一起使用,指定截取那个区域
举例:
cut -d: -f1,6,7 test.txt # 以:冒号分割,截取第1,6,7列内容
cut -c5-10 test.txt # 截取每行第5个字符到第10个字符
三、sort 工具
1. 简介
sort 工具用于排序,它将文件的每一行作为一个单位,从首字符向后,依次按 ASCII 码进行比较,最后将他们按升序输出。
2. 语法 & 选项
语法:
sort [选项] <文件名>
选项:
'-u: 去除重复行'
'-r: 降序排列,默认为升序'
-o: 将排序结果输出到文件中,类似重定向符号 >
'-n: 以数字排序,默认是按字符排序'
-t: 分隔符
-k: 第 N 列
'-b: 忽略前导空格'
-R: 随机排序,每次运行结果不同
四、uniq 工具 (unique)
uniq 用于去除连续的重复行。
语法:
uniq [选项] <文件名>
选项:
'-i: 忽略大小写'
'-c: 统计重复行次数'
'-d: 只显示重复行'
五、tee 工具
tee 将标准输入读取并写入到标准输出和文件,即:双向覆盖重定向(屏幕输出 | 文本输入)
语法:
tee [选项] <文件名>
选项:
'-a: 双向追加重定向'
举例:
echo hello | tee file1
cat file1
hello
echo 999 | tee -a file1
cat file1
hello
999
六、paste 工具
paste 用于合并文件行。
不加选项就是每行相加,中间默认用 tab 分隔。
语法:
paste [选项] <文件名1> <文件名2> ... <文件名n>
选项:
-d: 自定义分隔符,默认为制表符'\t'
-s: 串行处理,非并行,一个文件变成一行,该文件每行用 tab 分隔
七、tr 工具
tr 用于字符转换,替换和删除,主要用于删除文件中控制字符或进行字符转换。
用法1:命令的执行结果交给 tr 处理,其中 str1 用于查询,str2 用于转换处理
commands | tr 'str1' 'str2'
用法2: tr 处理的内容来自文件,记住要使用 '<' 标准输入
tr 'str1' 'str2' < filename
用法3:匹配 str1 进行相应操作,如删除操作
tr [选项] 'str1' < filename
选项:
-d: 删除字符串1中所有输入字符
-s: 删除所有重复出现字符序列,只保留第一个,即将重复出现字符串压缩为一个字符串
常匹配字符串:
字符串 | 含义 | 备注 |
---|---|---|
a-z 或 [:lower:] | 匹配所有小写字母 | |
A-Z 或 [:upper:] | 匹配所有大写字母 | |
0-9 或 [:digit:] | 匹配所有数字 | |
[:alnum:] | 匹配所有字母和数字 | [a-zA-Z0-9] |
[:alpha:] | 匹配所有字母 | |
[:blank:] | 所有水平空白 | |
[:punct:] | 匹配所有标点符号 | |
[:space:] | 所有水平或垂直的空格 | |
[:cntrl:] | 所有控制字符 | \f Ctrl-L 走行换页 \n Ctrl-J 换行 \r Ctrl-M 回车 \t Ctrl-I tab键 |
注:vim 下显示控制字符的方法::set list 。