最近在写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
网友评论