我有以下命令和输出
$ 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似乎对我不起作用
答案 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
。