shell脚本中三剑客

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值