您的位置:

grep显示行号

一、grep显示最后一行

grep -n "keyword" file | tail -n 1

在使用grep命令查找关键字时,有时候只需要知道该关键字最后一次出现的行号,可以使用tail命令只显示最后一行。

这条命令的意思是,在文件file中查找含有关键字"keyword"的行,并标出行号,然后从中取最后一行(也就是最新的匹配行),即可得到该关键字最后一次出现的行号。

二、grep只显示行号

grep -n "keyword" file | cut -d: -f1

有时候,我们不关心关键字具体在哪一行,只想知道有多少行包含该关键字,这时候可以使用cut命令只保留行号部分。

该命令将会在文件file中查找含有关键字"keyword"的行,并标出行号,然后使用cut命令以":"为分隔符,只保留行号部分输出。

三、grep显示前后几行

grep -n -A 2 -B 3 "keyword" file

当我们需要了解关键字在上下几行的具体内容时,可以使用-A(after)和-B(before)参数分别显示匹配行后几行和匹配行前几行。

该命令将会在文件file中查找包含关键字"keyword"的行,并标出行号,同时将匹配行的后两行和前三行也一起输出。

四、grep显示文件名和行号

grep -Hn "keyword" file

使用grep时,有时候需要知道包含该关键字的具体文件名和行号,可以使用-H(with-filename)参数加以区分,同时输出文件名和行号。

该命令将会在文件file中查找含有关键字"keyword"的行,并标出行号,同时在匹配行前面加上文件名。

五、grep查看上下几行

grep -n "keyword" file | awk 'BEGIN {FS=":"} {print $1}' | xargs -I '{}' awk -v n='{}' 'NR>=n-2&&NR<=n+2' file

有时候,我们不仅仅需要知道匹配行的具体内容,还需要知道匹配行的周围几行的内容,可以使用awk和xargs结合使用,查看匹配行上下的几行内容。

该命令将会在文件file中查找含有关键字"keyword"的行,并标出行号,然后使用awk命令只取行号,再将结果作为xargs的参数,使用awk命令输出匹配行上下2行的内容。