一、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行的内容。