【发布时间】:2013-03-11 13:26:28
【问题描述】:
我在~/script-filenames 中有一个包含数百个大小写混合文件名的列表,以及在当前目录中要搜索的数百个可能包含这些文件名的文本文件。
目前我正在使用以下 2 个命令:
-
不分大小写返回所有匹配项:
xargs -0 -I @ -a ~/script-filenames grep -ri @ -
返回所有完全匹配:
xargs -0 -I @ -a ~/script-filenames grep -r @
但是,当大小写被忽略时,我如何找到匹配的字符串,但在大小写准确时会失败?
也许有一种使用egrep和regexp的方法,但我不知道如何。
【问题讨论】:
-
grep -r @你想grep什么?什么都没有? -
不,xargs 将 @ 声明为输入文件中标记的替换变量。
-
是的,那么您的命令类似于
grep -r filename对吗?模式在哪里? -
嗯,应该是,但看起来没有......
-
No grep -r mystring 在当前位置的所有文件中查找 mystring 并打印匹配的行。我做错的是使用 xargs 的 -0 选项而不是清理输入文件。 xargs -I 允许您声明一个替换变量以在 cmdline 的其他地方使用。我使用 @ 作为我的替换变量。