`##grep:用于过滤文本内容
egrep == grep -E
grep 常用选项
选项 | 作用 |
---|
grep –color | 自动使用颜色标示匹配的关键词 |
grep -n | 匹配出来的行前面显示行号 |
grep -v | 对匹配的内容取反,显示未匹配行 |
grep -c | 显示匹配的行数 |
grep -r | 后面加目录,遍历一个目录,将目录中文件里匹配的行都打印出来 |
sed:可以过滤、查找和替换
sed 常用选项
选项 | 作用 |
---|
sed -n | 不打印未指定的行 |
sed -r | 脱义,当正则里有特殊字符需要用 \ 进行转义时 |
sed -i | 会把更改保存到文件中,实际改变文件内容,慎用 |
sed -e | 可以进行多次匹配,若匹配的关键词在同一行会重复打印 |
实例:
语句 | 作用 |
---|
sed -n '10'p 1.txt | p表示打印;-n:如果不加,则会打印全部内容,并把指定的那行再打印一次 |
sed -n '10,20'p 1.txt | 表示打印第10~20行的内容 |
sed -n '30,$'p 1.txt | 表示打印30行到末行的内容 |
sed -nr '/o{2}/'p 1.txt | 等价于 sed -n ‘/o\{2\}/’p 1.txt |
sed '/fish/'d 1.txt | 将含有fish的行删除不显示 |
sed '1,10s/login/LOGIN/g 1.txt | 将1~10行中的login替换成LOGIN,语法类似于vim中的替换 |
sed 's/login/LOGIN/g 1.txt | 全局替换,s=1,$s |
sed -r 's#(^[a-z]+)(:.\*:)(.*$)#\3\2\1#g' 1.txt | 替换位置 |
awk:可以分段、逻辑判断、数学运算
awk [-F fs] [-v var=value] [-f prog-file | 'program text'] [file...]
其中-F参数用于预先指定前面提到的字段分隔符(还有其他指定字段的方式) ,-v用于预先为awk程序指定变量,-f参数用于指定awk命令要执行的程序文件,或者在不加-f参数的情况下直接将程序语句放在这里,最后为awk需要处理的文本输入,且可以同时输入多个文本文件。
awk 常用选项
选项 | 作用 |
---|
awk -F ‘:’ | 指定以’:’为分隔符 |
awk –posix | 让awk支持正则中的{} |
NR | 表示行数,awk内置变量 |
NF | 表示每行段数,awk内置变量 |
实例:
语句 | 作用 |
---|
awk '/keyword/' 1.txt | 匹配keyword并输出 |
awk -F ':' '$1~/root/' 1.txt | 以:为分隔符分成若干段,用第1段匹配root并输出 |
awd -F ':' 'OFS="#" /root/ 1.txt | OFS用来指定输出时每段之间的分隔符 |