搜索图案和打印图案
问题描述:
我想搜索图案,然后打印该图案。我发现grep -o会是最好的选择,但我没有那个可用的。我可以使用sed,grep或awk。搜索图案和打印图案
输出:发现:无法CHDIR到</home/test/.ssh>
:权限被拒绝
我想匹配模式“/家/测试”按钮,返回“/home/test/.ssh”,并忽略该行的其余部分。
我已经试过:
find /home/test 2>&1 | sed -n '/\/home\/test\/.ssh/ s/.*\(\/home\/test\/.ssh\).*/\1/p'
但这种替换所有比赛用的/ home /测试
任何帮助,将不胜感激。
答
随着find
打印一个错误的“你不能访问的东西”这是一个稍微不同的情况。当发生这种情况时,find
打印到“STDERR”。所以你可以:
find /home/test 2>&1 1>/dev/null
这将只打印你打你找到的错误。如果您还需要“清理” Permission denied错误,如果grep -o
是你以后,你也许可以做到这一点在perl
:
find /home/test 2>&1 1>/dev/null | perl -ne 'print m,<(.*)>,'
(假设从find
您的输出在<>
路径)
为什么不只是'find/home/test -name'.ssh''? – Sobrique
@Sobrique我试图说明stderr。我不认为这会起作用,因为我想在/ home/test中找到所有内容。如果输出包含我上面的输出示例,我只想打印路径。 – Gautam
然后,你试图输出的例子将是一个好主意。 – Sobrique