我怎样才能显示我的grep命令的结果,增量数字在他们之前
我不是在说使用-n或-nr来显示我的字符串位于那些文件的位置。
我说的是这样的:使用grep显示结果的行号
grep foo *.*
结果应该是这样的:
-file12.txt: ....富... ...
-file52.txt: ... foo .....
-file87.txt: .... foo ...
。
。
感谢
我怎样才能显示我的grep命令的结果,增量数字在他们之前
我不是在说使用-n或-nr来显示我的字符串位于那些文件的位置。
我说的是这样的:使用grep显示结果的行号
grep foo *.*
结果应该是这样的:
-file12.txt: ....富... ...
-file52.txt: ... foo .....
-file87.txt: .... foo ...
。
。
感谢
运行它通过nl
,专用的 “行数” 工具:
grep foo * | nl
这显然适用于所有的命令,而不是仅仅grep
。
'cat -n'也可以工作 –
cat -n似乎受到广泛支持(GNU,FreeBSD,OpenBSD,Solaris),但它并不在Busybox或POSIX中。 –
这AWK可以在单个命令处理:
awk '/foo/{printf "%d-%s:\t%s\n", (++i), FILENAME, $0}' *.*
谢谢你的回复,但我真的不太关心数字和结果之间的' - '。 :) 谢谢 –
哦'''只是为了格式化,对于这个命令并不重要。 – anubhava
这可能是矫枉过正,但你至少可以尝试一下:
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
除非设置IFS = $'\ n'' - IFS = read -r line,否则不要使用'for'循环遍历**行**。做回声“$((++ n)) - $ line”;完成' –
谢谢你的回复,但我真的不在乎数字和结果之间的' - '。 :) 谢谢 –
Grep不会自己做,但你可以写一个脚本。 –