我正在尝试克服文件结构的限制。我想在已知位置 grep 一系列文件。如果我从命令行执行标准 grep
(grep -i searchpattern known_dir/s*.sql)
我收到以下错误:
ksh: /usr/bin/grep: 0403-027 The parameter list is too long.
所以我有一个小 for 循环,如下所示:
searchfor=$1
for i in /$ENV_VAR_DIR/s*.sql
do
grep -i $searchfor $i
done
当我执行这个时,我遇到了几个问题:
- 它给了我代码行但没有文件名我需要两者
-
-l
显然只给了我我想要修剪的路径/文件名,我只是从我的主目录执行。
我会推荐以下内容:
$ find known_dir -name 's*.sql' -print0 | xargs -0 grep -i searchpattern
With xargs
,您可以改变传递到的最大文件数grep
每次使用-n
option.
The -print0
and -0
options 是对文件名中空格的防御。
你甚至可以计算多个grep
使用在多个内核上并行命令-P
option.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)