搜索图案和打印图案

Search for pattern and print pattern

我想搜索一个图案,然后打印那个图案。我发现 grep -o 是最好的选择,但我没有。我可以使用 sed、grep 或 awk。

输出: 发现:无法 chdir 到 </home/test/.ssh>:权限被拒绝

我想匹配模式“/home/test”和return“/home/test/.ssh”并忽略该行的其余部分。

我试过:

find /home/test 2>&1 | sed -n '/\/home\/test\/.ssh/ s/.*\(\/home\/test\/.ssh\).*//p'

但这会替换所有与 /home/test

的匹配项

如有任何帮助,我们将不胜感激。

使用 find 打印 "things you can't access" 的错误,情况略有不同。当发生这种情况时,find 打印为 "STDERR"。所以你可以:

find /home/test 2>&1 1>/dev/null 

这只会打印您在查找过程中遇到的错误。如果您仍然需要 'clean up' 权限被拒绝错误,如果 grep -o 是您所追求的,您可以在 perl:

中完成
 find /home/test 2>&1 1>/dev/null | perl -ne 'print m,<(.*)>,' 

(假设您从 find 输出的路径在 <> 中)