我使用cat来显示文件文件的内容,使用grep显示字符串,例如cat log/* | grep 'error'
,并想知道是否有选项显示哪个文件名匹配"错误"在文件夹日志下?我上面使用的当前命令仅显示匹配的行。
使用Linux。
提前谢谢, 林答案 0 :(得分:2)
grep
本身接收文件参数。所以
grep 'error' log/*
会起作用。
另外,着色和行号最好显示:
grep -n --color 'error' log/*
使用起来很常见,您可以在.bashrc
文件中添加以下内容:
alias grep='grep -n --color'
但它在脚本中不起作用,因此请确保您了解alias
实际上是什么。
似乎我误解了你的问题。实际上你想要的是这个:
ls log/*error*
我不知道你尝试做什么,但如果你试图使用ls
返回的名字,这是一件错误的事情。这取决于您的语言,在bash
中,您应该使用globbing循环文件名:
for file in log/*error*; do
do-your-stuff $file
done
在其他语言中,您应该拥有更好的工具,而不是调用额外的流程。
关于为什么ls
不好:http://mywiki.wooledge.org/ParsingLs