在我的脚本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
任何人都能看到我在这个剧本中缺少的东西?感谢
答案 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)