在文件中搜索字符串并输出行号


awk '$0 ~ str{print b}{b=$0}' str="findme" path_to_file

有了这个,我可以在找到的字符串的行之前得到行
如何打印其行号?

使用NR获取当前行(记录(编号:

awk '$0 ~ str{print NR-1 FS b}{b=$0}' str="findme" path_to_file

如果我正确解释了这个问题,并且您只想打印包含给定字符串的任何行之前的行的行号,您可以执行:

$awk'/fidme/{print NR-1}'/path/to/file

这里有一个解决方案:

awk '$0 ~ str{print b;print}{b=$0}' str="findme" path_to_file

或者,如果你不介意稍微不同的输出,其中有"--"分隔找到的行组:

grep -B1 findme path_to_file

在这种情况下,您将在文件"path_to_file"中搜索字符串"findme"。-B1标志表示,"在此之前还打印1行。">

您可以使用echo $(awk '$0 ~ str{print b}{b=$0}' str="findme" path_to_file)

相关内容

  • 没有找到相关文章

最新更新