grep 内容的过滤
sed 修改、编辑配置文件
awk 对文件进行查看并切割,找到需要的内容
实例1 grep 参数 "关键字" 文件
实例2 带有标准输出的命令 | grep 参数 "关键字"
grep参数
-E 支持扩展正则
-P 支持perl正则
-F 精准过滤,不支持任何特殊字符
-v 反向过滤
-o 只输出匹配到的内容
-i 不区分大小写
-c 统计匹配次数
实例1 sed 参数 "需要操作的内容" 文件
实例2 带有标准输出的命令 | sed 参数 "关键字"
sed参数
-i.bak -i是指在源文件中生效,.bak是可以将原来的文件备份
-f 指定规则文件,如果规则复杂可以使用这个参数
-n 输入的行不再输出,一般和打印p的模式一起使用
-r 支持扩展正则符号
sed 的模式
替换:
sed 's/正则匹配的原内容/要替换成的内容/g' # s是替换 g是全局,g也可以写为数字,表示替换第几个,也可以写3g从3替换到最后,也可以写gi 替换时不区分大小写。
删除:
sed '/正则匹配的原内容/d' # d 表示删除
sed '/正则匹配的原内容/,5d' # 从匹配行删除到第5行
sed '/正则匹配的原内容/,$d' # 从匹配行删除到最后
sed '1,/正则匹配的原内容/d'
sed '/正则匹配的原内容/,/写一个匹配行/d'
sed '1,5d' # 从第一行删除到第5行
sed '1~2d' # 删除1、3、5行
打印:
sed -n '/匹配内容/p' # 打印匹配到的内容,-n是输入行不再输出
插入:
sed '/匹配到的内容/a\要追加的内容'
sed '/匹配到的内容/i\要插入的内容' # 插入 i 追加 a
awk 参数
-F 指定输入字段分隔符
-f 指定规则文件
-v 可以给表达式传递变量
awk 的符号
NR 行号
NF 列的数量
FNR 不同文件分开行号
FS 输入字段分隔符 空格或tab
OFS 输出字段分隔符 空格
RS 输入记录分隔符 换行
ORS 输出记录分隔符 换行
awk 'BEGIN{一般是在处理数据之前可以做的事情,例如,初始化一些变量,或者打印一些内容}{文件中的每一行都会调用这一块}END{一般是输出一些内容,或将计算结果进行处理并输出}'
awk 的特殊语法
awk '{if($NF <= 2000){print "真完蛋",$NF} else{print "还可以",$NF}}' data.txt
awk 'BEGIN{for(i=0;i<100;i++){print i}}' data.txt
awk 'BEGIN{FS=":"}{shells[$NF]++}END{for(i in shells){print i,shells[i]}}' /etc/passwd