Linux Bash - 具有部分路径名的grep文件

时间:2012-01-30 17:38:24

标签: linux bash

文件包含完全限定的路径名​​(ex /aaa/bbb/cc)。 我只需要搜索文件/bbb/cc/bbb/cc是执行搜索的bash脚本的参数。

我的问题是论证中的正斜杠:

find . -name '*.txt' -print | xargs grep $1 /dev/null

2 个答案:

答案 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中删除前导路径组件。由于我们正在使用其中包含斜杠的模式,因此我随意选择分号作为分隔符。它是说用空格(;;)代替每一行(只有一行)以斜杠开头,后跟一个或多个非斜杠字符。