Linux文本三剑客常用命令(grep、sed、awk)

本文介绍了grep命令用于文本过滤,包括大小写敏感与不敏感、反向匹配、扩展正则表达式等;sed命令用于文本替换、删除及定位打印,支持精确匹配和范围操作;awk则是一个强大的文本处理工具,用于行选择、列提取和整行操作,尤其适合统计和数据提取。
摘要由CSDN通过智能技术生成

grep

用于过滤,grep的命令过滤是最快的

#grep默认是区分大小写的,-i参数则不区分大小写匹配
grep -i

#反向匹配(取反,过滤掉匹配的)
grep -v

#扩展正则表达式,匹配多个条件“ERROR|Started|failed”,egrep = grep -E
grep -E

#精确匹配,主要用于过滤端口
grep -w

#统计匹配次数(类似于wc -l)
grep -c

#匹配后显示行号
grep -n

sed

替换,修改文件,日志取行。文件的修改以及日志的范围取行,如晚上0点到凌晨1点的日志

1.查找打印p总结:
#打印test.txt文件的第三行
sed -n '3p' test.txt

#打印test.txt文件从5行到最后一行
sed -n '5,$p' test.txt

#精确匹配出scala,类似于grep
sed -n '/scala/p' test.txt

#扩展正则需要加 -r
sed -nr ’/[ab]{1,4}/p’ test.txt

#匹配scala到spark范围内全部输出,通常用于日志时间
sed -nr '/scala/,/spark/p'


2.sed d删除:
#删除test.txt文件的第一行
sed '1d' test.txt

#删除test.txt文件的第三行到最后一行
sed '3,$d' test.txt

#精确匹配出scala并删除
sed '/scala/d' test.txt

#匹配scala到spark的内容并删除
sed '/scala/,/spark/d' test.txt

3.sed cai --replace(替代)、append(行后追加)、insert(行前插入)
#将第三行替代成this is replace
sed '3c this is replace'

#在第三行后追加this is append
sed '3a this is append'

#在第三行前插入this is insert
sed '3i this is insert'

4.sed s  -s为替换 -g全局替换(global),不加的话只替换每行第一个匹配项

awk

awk是一种用于处理文本的编程语言工具,很多方面都类似于shell(c语言),主要应用场景:统计日志,计算。

#取test.txt文件的第一行
awk 'NR==1' test.txt

#取test.txt文件的3-6行
awk 'NR>=3 && NR<=6' test.txt

#精确匹配test.txt文件中的spark行
awk '/spark/' test.txt

#匹配范围取行,从spark到java
awk '/spark/,/java/' test.txt

#取test.txt文件的第一列
awk '{print $1}' test.txt

#取test.txt文件的第一列和最后一列
awk '{print $1,$NF}' test.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值