文件包含完全限定的路径名(例如/aaa/bbb/cc)。我只需要在文件中搜索/bbb/cc。/bbb/cc是执行搜索的bash脚本的参数。
我的问题是参数中的正斜杠:
find . -name '*.txt' -print | xargs grep $1 /dev/null发布于 2012-01-31 01:53:29
我不确定这是否是你的意思,但是如果你想在grep中使用正则表达式来匹配/bbb/cc,而不是/aaa/bbb/cc,那么你可以使用这个:
$ grep '^/bbb/cc$' <filename>发布于 2012-01-31 01:54:24
find . -name \*.txt -exec grep `echo $1 | sed -E 's;^/[^/]+;;'` /dev/null \;sed表达式将从$1中去掉前导路径部分。由于我们使用的模式中包含斜杠,因此我随意选择分号作为分隔符。它的意思是用一个空格(;;)代替每一行(只有一行),该行以斜杠开头,后面跟着一个或多个非斜杠字符。
https://stackoverflow.com/questions/9068186
复制相似问题