And*_*say 27 bash grep pattern-matching match
onefish
onechicken
twofish
twochicken
twocows
threechicken
Run Code Online (Sandbox Code Playgroud)
如果我想grep包含"two"的行,但我只想要第二场比赛,该怎么办?所以我希望结果"twochicken".
Ken*_*ent 28
试试这个:
awk '/two/{i++}i==2' file
Run Code Online (Sandbox Code Playgroud)
与您的数据:
kent$ echo "onefish
onechicken
twofish
twochicken
twocows
threechicken"|awk '/two/{i++}i==2'
twochicken
Run Code Online (Sandbox Code Playgroud)
注意:如果您的文件很大,请执行以下操作:
awk '/two/{i++}i==2{print; exit}' file
Run Code Online (Sandbox Code Playgroud)
Joh*_*nck 20
grep -m2 "two" in-file.txt | tail -n1
Run Code Online (Sandbox Code Playgroud)
在第二场比赛后停止,然后打印第二行.
grep 和 sed 可用于过滤行号。
测试文件:
onefish
onechicken
twofish
twochicken
threechicken
twocows
Run Code Online (Sandbox Code Playgroud)
获取所需的行:
grep "two" testfile | sed -n 2p
prints "twochicken"
grep "two" testfile | sed -n 1p
prints "twofish"
Run Code Online (Sandbox Code Playgroud)
要使用第 n_th 匹配的命令,我们可以使用和命令grep
的组合,如下所示:head
tail
grep two file.txt | head -n1 | tail -1
Run Code Online (Sandbox Code Playgroud)
n1
我们需要的第 n_th 匹配项在哪里。