文件包含完全限定的路径名(ex /aaa/bbb/cc
)。
我只需要搜索文件/bbb/cc
。
/bbb/cc
是执行搜索的bash脚本的参数。
我的问题是论证中的正斜杠:
find . -name '*.txt' -print | xargs grep $1 /dev/null
答案 0 :(得分:1)
我不确定这是不是你的意思,但如果你正在寻找一个正则表达式用于grep
以匹配/bbb/cc
,而不是/aaa/bbb/cc
,那么你可以用这个:
$ grep '^/bbb/cc$' <filename>
答案 1 :(得分:0)
find . -name \*.txt -exec grep `echo $1 | sed -E 's;^/[^/]+;;'` /dev/null \;
sed表达式将从$1
中删除前导路径组件。由于我们正在使用其中包含斜杠的模式,因此我随意选择分号作为分隔符。它是说用空格(;;
)代替每一行(只有一行)以斜杠开头,后跟一个或多个非斜杠字符。