通过另一个文件列表grep文件

时间:2014-07-02 15:37:51

标签: bash loops while-loop grep find

我正在尝试查找是否在调度程序中实际调用的脚本文件列表中调用了一些java类。

while read j; do
    while read b; do
        #Read through job files
        if [ $(cat crontab.now *.sh | grep -c ./$b) == "1" ] ; then
            echo -e $j: $(cat $b | grep -c .$j) >> bash_output.txt
        fi
    done <UsedBash.txt
done <java_file_names.txt

我只希望在调度程序中至少找到一次的脚本中查找java文件名。没有嵌套的while循环,有没有更有效的方法来做到这一点?我也不认为我的if语句有效。谢谢。

2 个答案:

答案 0 :(得分:1)

我不知道你真的想要它如何完成,但也许可以试试这个:

while read j; do
    while read b; do
        [[ $(exec grep -c "/$b" crontab.now *.sh) -ge 1 ]] && \
            echo -e  "$j: $(exec grep -c ".$j" "$b")" >> bash_output.txt
    done < UsedBash.txt
done < java_file_names.txt

答案 1 :(得分:0)

解答:

input=$(cat UsedBash.txt | tr '\n' ' ')

while read j; do

j=$(echo $j | sed -e 's/\r//g')
#Read through job files
echo $j: $(cat $input | grep -c $j) >> bash_output.txt

done <java_file_names.txt