我想搜索一个模式,然后打印该模式。我发现grep -o将是最好的选择,但我没有那个可用。我可以使用sed,grep或awk。
输出:找不到chdir到</home/test/.ssh>
:权限被拒绝
我想匹配模式&#34; / home / test&#34;并返回&#34; /home/test/.ssh"并忽略其余部分。
我试过了:
find /home/test 2>&1 | sed -n '/\/home\/test\/.ssh/ s/.*\(\/home\/test\/.ssh\).*/\1/p'
但是这会用/ home / test
替换所有匹配项任何帮助将不胜感激。
答案 0 :(得分:0)
find
打印“您无法访问的内容”的错误,这种情况略有不同。当发生这种情况时,find
会打印到“STDERR”。所以你可以:
find /home/test 2>&1 1>/dev/null
这只会打印您在查找中遇到的错误。如果您仍然需要“清理”权限被拒绝错误,如果grep -o
是您所追求的,您可以在perl
中执行此操作:
find /home/test 2>&1 1>/dev/null | perl -ne 'print m,<(.*)>,'
(假设find
的输出中的路径为<>
)