linux脚本shell:grep路径列表中路径的一部分

时间:2014-11-17 09:46:24

标签: linux shell grep

在我的脚本shell中,我有2个文件。第一个是一个文件,只包含部分路径的文件名称:

list1的:

aaa/bbb/file1.ext
ccc/ddd/file2.ext
eee/fff/file3.ext

第二个是扩展名" .ext"的每个文件的列表。他们面前的绝对路径:

列表2:

/home/.../aaa/bbb/file1.ext
...
...
...
/home/...ccc/ddd/file2.ext
...

我正在尝试提取第二个文件list2的行,其中包含第一个带有grep的行。

现在我试过了:

while read line
do
    grep "$line" "list1" 
done < list2

但是这个命令并没有输出任何东西,不过命令

grep "aaa/bbb/file1.ext" "list1"

有我正在等待的输出

/home/.../aaa/bbb/file1.ext

任何人都能看到我在这个剧本中缺少的东西?感谢

1 个答案:

答案 0 :(得分:3)

这是来自-f的{​​{1}}选项非常方便的案例之一:

grep

对于您的给定输入返回:

grep -f f1 f2

来自/home/.../aaa/bbb/file1.ext /home/...ccc/ddd/file2.ext

  

-f FILE , - file = FILE

     

从FILE获取模式,每行一个。空文件包含零   模式,因此没有匹配。 (-f由...指定   POSIX)