最近在寫shell腳本過程中經(jīng)常會(huì)遇到查找字符串所在行號(hào),這里做個(gè)記錄。
以1.txt為例,
xxx
yyy
zzz
xxx
1. 使用grep
1.1.查找"xxx"出現(xiàn)在哪幾行
# grep -n "xxx" 1.txt
1:xxx
4:xxx
如果需要提取字符串所處的行號(hào),可以使用cut命令進(jìn)行提取
# grep -n "xxx" 1.txt | cut -d ":" -f 1
1.2.查找字符串"xxx"最后一次匹配的行號(hào)
# grep -n "xxx" 1.txt | tail -1
1:xxx
4:xxx
1.3.查找字符串"xxx"第二次匹配的行號(hào)
# grep -n "xxx" 1.txt | head -2 | tail -1
1:xxx
4:xxx
2.使用awk
2.1.查找"xxx"出現(xiàn)在哪幾行
awk '/xxx/{print NR}' 1.txt
2.2.查找字符串"xxx"最后一次匹配的行號(hào)
awk '/xxx/{print NR}' 1.txt | tail -1