Unix 为一个字符串解析1000个脚本的最佳方法?

Unix 为一个字符串解析1000个脚本的最佳方法?,unix,ksh,Unix,Ksh,我从一位前员工那里继承了代码,我需要识别他在顶部退出0时禁用的脚本 如果我在脚本上执行head-2 load_db.ksh | tail-1 | grep hello,则效果很好。我在脚本的第二行看到exit 0语句 如何为近900个脚本自动执行此操作?我试着使用find,但它出错了 find . -name "*.ksh" -exec head -2 '{}' | tail -1 |grep exit \; grep: ;: No such file or directory find: mi

我从一位前员工那里继承了代码,我需要识别他在顶部退出0时禁用的脚本

如果我在脚本上执行
head-2 load_db.ksh | tail-1 | grep hello
,则效果很好。我在脚本的第二行看到
exit 0
语句

如何为近900个脚本自动执行此操作?我试着使用find,但它出错了

find . -name "*.ksh" -exec head -2 '{}' | tail -1 |grep exit \;
grep: ;: No such file or directory
find: missing argument to -exec

我在语法中找不到错误。

您当前正在将find的输出定向到tail,请尝试以下操作:

find . -name "*.ksh" -exec sh -c "head -2 '{}' | tail -1 | grep exit" \;  

一个非常类似的替代方案是(这将实际返回需要您注意的文件列表):


哦,太棒了。这实际上是有道理的。非常感谢你!!它起作用了!可能的重复项不起作用
find-名称“*.ksh”-exec sh-c“head-v-n2'{}'| tail-v-n1 | grep-H'^exit 0'”但它不显示与模式匹配的文件名。我怎样才能做到这一点?
    find . -name "*.ksh" |xargs -ifile sh -c "head -n 2 file | grep -q exit && echo file"