使用grep显示结果的行号

时间:2015-06-05 20:16:36

标签: linux bash grep formatting line

我如何用他们之前的增量数字显示我的grep命令的结果,
我不是在谈论使用-n或-nr来显示我的字符串在那些文件中的位置。

我在谈论这样的事情:

 grep foo *.*

结果应该是这样的:

  

1 -file12.txt:.... foo .....
   2 -file52.txt:.... FOO .....
   3 -file87.txt:.... FOO ...
  。
  

由于

3 个答案:

答案 0 :(得分:4)

通过nl,专用的"数字行"运行它工具:

grep foo * | nl

这显然适用于所有命令,而不仅仅是grep

答案 1 :(得分:0)

这个awk可以用单个命令处理它:

awk '/foo/{printf "%d-%s:\t%s\n", (++i), FILENAME, $0}' *.*

答案 2 :(得分:0)

它可能会过度,但你至少可以尝试一下:

n=0
for item in $(grep foo *)
do
    n=$((n+1))
    echo "$n-$item"
done

在一行中:

n=0;for item in $(grep foo *); do n=$((n+1)); echo "$n-$item"; done