查询字符串所在的行号

最近在写shell脚本过程中经常会遇到查找字符串所在行号,这里做个记录。

以1.txt为例,

xxx
yyy
zzz
xxx

1. 使用grep

1.1.查找"xxx"出现在哪几行

# grep  -n  "xxx"   1.txt  
1:xxx
4:xxx

如果需要提取字符串所处的行号,可以使用cut命令进行提取

# grep  -n  "xxx"   1.txt  | cut -d ":" -f 1

1.2.查找字符串"xxx"最后一次匹配的行号

# grep  -n  "xxx"   1.txt  | tail -1
1:xxx
4:xxx

1.3.查找字符串"xxx"第二次匹配的行号

# grep  -n  "xxx"   1.txt | head -2 | tail -1
1:xxx
4:xxx

2.使用awk

2.1.查找"xxx"出现在哪几行

awk '/xxx/{print NR}' 1.txt

2.2.查找字符串"xxx"最后一次匹配的行号

awk '/xxx/{print NR}' 1.txt | tail -1

https://blog.csdn.net/ithomer/article/details/8465880

你可能感兴趣的:(查询字符串所在的行号)