正则表达式在文本过滤中的使用

正则表达式在文本过滤中的使用

这个系列简单记录学习正则表达式的历程,结合在grep awk sed 中的使用,增强印象。

(三)grep awk sed 实践

同过几个小例子,熟悉grep awk sed的使用,文件test.txt:

hello, i miss you.
I love google
Tecent is rubbish.
welcome to BERK.
my name is zhang yusheng.
milk, do you like.
yes, very much.
anything else
no hello
anything?
see you

统计文件的行数

  1. 使用awk
    awk ‘END{print NR}’ test.txt
    awk会循环处理相应的行,这里的命令是在循环的最后(END)输出行号
  2. 使用sed
    sed -n ‘$=’ test.txt
    其实,统计行数的最简单命令是使用wc
    wc -l test.txt

打印文件的某(几)行

  1. 使用awk,显示第2行
    cat -n test.txt | awk '{if($1==2){print $0}}'
    这条命令,使用cat -n显示文本内容并加行号,然后使用awk分割没一行,判断第一个域(行号)是否为2,如果是,就输出该行。
  2. 使用sed
    sed -n '2p' test.txt显示第2行
    sed -n '2,5p' test.txt 显示第2-5行(包括第2和第5行)
    sed -n '3,$p' test.txt 显示第3行到最后一行

找出某单词出现的行

比如,找test.txt中hello出现的行

  1. grep hello test.txt
    可以加上-n参数,输出行号
  2. awk ‘/hello/{print NR,$0}’ test.txt
    先匹配“hello”,匹配上就输出行号和内容
  3. `sed -n ‘/hello/=’ test.txt

通过上边的例子,是不是对文本处理的正则有了更具体的了解了呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值