Linux中几种常用文本处理工具(grep,sed,awk)

在Linux中有几种常用的文本处理工具,今天来梳理一下grep、sed、awk,这几种工具的用法
grep
用途:在文件中查找并显示包含指定字符串的行
格式:grep [选项] 查找内容 目标文件
-i:查找时忽略大小写
-v:反转查找,输出与模式不相符的行
-w:按整字查找
-n:显示符合模式要求的行号
-r:递归搜索所有文件(一般用于目录)
-o:只打印匹配的字符串
以上几种选项仅是grep选项的基本命令查找操作,我们也可以使用正则表达式来搜索文本,同时也支持扩展正则(需要加 -e选项)
sed
sed是一种支持正则的非交互式流编辑器,在使用sed工具时会有默认的输出,也可以屏蔽默认输出
sed的语法命令格式
sed [选项] sed编辑命令 输入文件
sed的常用选项
-n:只显示匹配处理的行(否则会输出所有,屏蔽默认输出)
-e:执行多个编辑命令时(一般用;代替)
-i: 直接在文件中进行修改,而不是输出到屏幕
-r:支持扩展正则表达式
-f:从脚本文件中读取内容并执行(文件中的编辑命令每行一个不要;隔开)
sed 的常用编辑命令
p:打印匹配行
d:删除指定行
a:在匹配行后面追加
i:在匹配行前面插入
c:整行替换
r:将文件的内容读入
w:将文本写入文件
s:字符串替换
这里以p、s 编辑命令示例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
awk
awk的命令工作原理与sed一样,均是一行一行的读取,处理。sed作用于一整行的处理,而awk将一行分成数个字段来处理。
在这里插入图片描述
awk使用方法
awk的用-F来指定分隔符
默认的字段分隔符是任意空白字符(空格或者TAB)
举例对比cut和awk的区别

awk的数据字段变量
$0表示整行文本
$1表示文本中第一个数据字段
$2表示文本中第二个数据字段
$n表示文本中第n个数据字段
在这里插入图片描述
awk的命令的执行过程
执行BEGIN{commands}语句块中的语句
从文件或stdin中读取第1行,
有无模式匹配, 若无则执行{}中的语句,
若有则检查该整行与pattern是否匹配, 若匹配, 则执行{}中的语句,
若不匹配则不执行{}中的语句,接着读取下一行
重复这个过程, 直到所有行被读取完毕
执行END{commands}语句块中的语句
在这里插入图片描述
在这里插入图片描述
awk命令的操作符
正则表达式和bash一致
数学运算:+,-,*,/, %,++,- -
逻辑关系符:&&, ||, !
比较操作符:>,<,>=,!=,<=,== ~ !~
文本数据表达式:== (精确匹配)
~波浪号表示匹配后面的模式
who | awk '$2 ~ /pts/{print $1}‘
awk -F: ‘$3 ~ /<…>/ {print $1,$3}’ /etc/passwd
seq 100 | awk ‘$1 % 5 == 0 || $1 ~ /^1/{print $1}’
awk -F: ‘$1 == “root”{print $1,$3}’ /etc/passwd
在这里插入图片描述
在这里插入图片描述
以上只是简单介绍了这几种工具的用法,需要更深入的学习

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值