如何通过管道获取modules/bx/motif
?
$ find . | grep denied
find: `modules/bx/motif': Permission denied
答案 0 :(得分:1)
sed
:find . 2>&1 | sed 's/^[^:]*: .\(.*\).: Permission denied/\1/p;d'
正如您的问题代表bash:
string=$'find: `modules/bx/motif\047: Permission denied'
echo $string
find: `modules/bx/motif': Permission denied
part=${string#*\`}
echo ${part%\'*}
modules/bx/motif
答案 1 :(得分:0)
您可以重定向STDOUT(您想要出现的错误),以便您可以使用其他工具处理它,然后丢弃STDIN(其中包含您不关心的非错误),然后使用{{1} (或其他任何一种方法)提取你需要的位:
cut
您也可以使用其中一个内置find . 2>&1 >/dev/null | cut -d"‘" -f2 | cut -d"’" -f1
过滤器(例如find
}来挑选这些文件,但您必须检查{{1有关详细信息,请参阅手册页。
-perm
可能对您的情况有所帮助。