grep:文本过滤工具
sed:文本替换工具
awk:文本格式化工具
grep
语法:
grep [参数 ] [模式 ] file
参数选项 | 解释说明 |
---|
-v | 排除匹配结果 |
-n | 显示匹配行与行号 |
-i | 不区分大小写 |
-c | 只统计匹配的行数 |
-E | 使用egrep命令 |
-color=auto | 为grep过滤结果添加颜色 |
-w | 只匹配过滤的单词 |
-o | 只输出匹配的内容 |
sed
语法:
sed [参数 ] [内置命令字符] file
参数选项 | 解释说明 |
---|
-n | 取消默认sed的输出,常与sed内置命令p一起用 |
-i | 直接将修改结果写入文件,不用-i,sed修改的是内存数据 |
-e | 多次编辑,不需要管道符 |
-r | 支持正则扩展 |
sed内容命令字符 | 解释说明 |
---|
a | append,对文本追加,在指定行后面添加一行/多行文本 |
d | delete,删除匹配行 |
i | insert,表示插入文本,在指定行前添加一行/多行文本 |
p | print,打印匹配行的内容,通常p与-n一起用 |
s/正则/替换内容/g | 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配 |
匹配范围 | 解释说明 |
---|
空地址 | 全文处理 |
单地址 | 指定文件某一行 |
/pattern/ | 被模式匹配到的每一行 |
范围区间 | 10,20 十到二十行, 10,+5 第十行向下五行, /pattern1/,/pattern2/ |
步长 | 1~2,表示1、3、5、7、9行,2~2两个步长,表示2、4、6、8、10偶数行 |
单地址 | 指定文件某一行 |
awk
语法:
awk [参数 ] ‘条件{动作}’ file
参数选项 | 解释说明 |
---|
-F | 指定分隔字段符 |
-v | 定义或修改一个awk内部的变量 |
-f | 从脚本文件中读取awk命令 |
内置变量 | 解释说明 |
---|
$n | 指定分隔符后,当前记录的第n个字段 |
$0 | 完整的输入记录 |
FS | 输入字段分隔符,默认为空白字符 |
OFS | 输出字段分隔符,默认为空白字符 |
RS | 输入记录分隔符(输入换行符),指定输入时的换行符 |
ORS | 输出记录分隔符(输出换行符),输出时用指定符号代替换行符 |
NF(Number of Fields) | 当前行的字段的个数(即当前行被分割成了几列),字段数量 |
NR(Number of Records) | 当前记录数,行号 |
FNR | 各文件分别计数的行号 |
FILENAME | 当前文件名 |
ARGC | 命令行参数的个数 |
ARGV | 数组,保存的是命令行所给定的各参数 |
更多内置变量可以man手册查看 | man awk |