Linux文本处理三剑客+正则表达式

Linux文本处理常用的3个命令,脚本或者文本处理任务中会用到。这里做个整理。
三者的功能都是处理文本,但侧重点各不相同,grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。

1、grep

grep的全称是Global Regular Expression Print,全局正则表达式打印。用于文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(就是只要一行里有对应的字符被匹配到,这一行都会被打印出来)。

grep加上正则匹配会有很多功能,但我目前只常用一些简单的:

  • xxx | grep AA 在命令的输出后提取AA关键词并显示。可以过滤其他不关心的输出
  • grep -r “xxx” . 在当前目录及其中所有文件中查找包含xxx的文件和语句。我在找不到某句话出自哪个文件时会用

2、sed

linux下输入sed会显示他的用法:

-n:静默模式,仅打印由 p 命令指定的行。
-e script:直接在命令行模式中添加 sed 脚本。
-f script-file:从文件中读取 sed 脚本。
-i:直接编辑文件。

注意只有-i才会直接修改文件,其余的都是打印到终端,或者可以输出到另一个文本中。

常见命令

  • 匹配行,打印 ( p ):打印指定行或匹配的行。
    注意想只输出其中的几行只用’20,40p’不行,必须加上-n,否则会打印所有行
  • 增加(a)/插入(i),删除 (d),替换(s)

替换匹配行的关键字s/regexp/replacement/flags):

s 代表替换命令
regexp 是一个正则表达式,用于匹配要替换的文本。
replacement 是用来替换匹配文本的新文本。
flags 是可选的标志,用于修改替换行为。  g表示全局替换,不加的话只替换匹配到的第一行
sed -n '20,40p' input.txt  只打印txt中的20到40行
sed '5,10d' input.txt    删除5-10行
sed 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值