grep和don #t显示包含某个字符串的行

时间:2015-03-24 23:31:15

标签: grep

我有以下命令和输出

$ find . -iname '*custom_layout_width*'
find: ‘./etc/apps/learned/local’: Permission denied
./etc/apps/search/appserver/static/custom_layout_width.js
find: ‘./etc/apps/search/local’: Permission denied
./etc/apps/simple_xml_examples/appserver/static/custom_layout_width.js
find: ‘./etc/apps/simple_xml_examples/local’: Permission denied
find: ‘./etc/apps/splunk_management_console/lookups’: Permission denied

我不想显示不包含字符串Permission的行。

我该怎么做? 我正在考虑使用grep,我显然不是那么好。

$ find . -iname '*custom_layout_width*' | grep '!Permission'

EDIT1 发现此here,但使用-v似乎对我不起作用

1 个答案:

答案 0 :(得分:0)

您可以将错误重定向到/dev/null

find . -iname '*custom_layout_width*' 2>/dev/null

以下不起作用,

find . -iname '*custom_layout_width*' | grep '!Permission'

因为,pipe从stdout获取输入并将其作为输入传递给下一个命令。但是这里Permission Denied将会出现在stderr中。所以管道不起作用。

为此你可以这样做,

find / -iname "hi" 2>&1 | grep -v "Permission"

2>&1它正在将stderr合并到stdout。现在,stderr内容将放置在stdout