linux中输出匹配行的行号

 

1、测试数据

[root@centos7 test4]# ls test.txt [root@centos7 test4]# cat test.txt e f j d i x a d g c F w

 

2、grep 实现

[root@centos7 test4]# ls test.txt [root@centos7 test4]# cat test.txt e f j d i x a d g c F w [root@centos7 test4]# grep -n d test.txt   ## 输出匹配d的行号 2:d i x 3:a d g

 

3、sed实现

[root@centos7 test4]# ls test.txt [root@centos7 test4]# cat test.txt e f j d i x a d g c F w [root@centos7 test4]# sed -n '/d/=' test.txt  ##  输出匹配d的行号 2 3

 

4、awk实现

[root@centos7 test4]# ls test.txt [root@centos7 test4]# cat test.txt e f j d i x a d g c F w [root@centos7 test4]# awk '$0 ~ /d/ {print NR}' test.txt  ## 输出匹配d的行号 2 3