【发布时间】:2021-12-31 06:10:51
【问题描述】:
我有一个名为 file.txt 的文件,每行包含数百个文件路径。
文件.txt:
dir1/a.txt
dir2/b.txt
and so on
我正在尝试将此文件用作我的 grep 命令的输入:
less file.txt | xargs -I{} grep -E -A5 'search|pattern' {}
但它说文件名太长,并且似乎认为“a|b|c”是基于错误的文件名的一部分,但我无法判断我在当前代码中做错了什么.
我的搜索模式也很长,因为我需要从 file.txt 中列出的那些特定文件中找到很多东西。
感谢您的帮助。
【问题讨论】:
-
不要使用
less。使用< file.txt xargs -I{} grep -E -A5 'pattern1|pattern2' {}。 -
我复制了这一行,但它似乎仍然认为搜索模式(即 'pattern1|pattern2')是文件,而不是读取 file.txt 中的路径。我也尝试切换搜索模式和 {} ,但它说 {} 不是目录