如果grep文件wordcount等于数字那么

时间:2012-03-14 16:17:03

标签: bash shell scripting

我有这个脚本 - 它不起作用。我希望脚本返回关键字“关键字”出现两次的所有文件的列表。

#!/bin/bash
for file in * ; do
    if [ $(grep 'keyword' $file | wc -l) -eq 2 ]
    then
        echo $file
    fi
done

3 个答案:

答案 0 :(得分:3)

使用

grep -c 'keyword' * | sed -n -e '/:2$/s/:2$//p'

答案 1 :(得分:2)

您可能希望使用grep的'-o'选项,它将输出其自己行中的每个匹配项,而不是打印整行。当你在同一行上有2个以上的出现时它也会起作用。

grep -o 'keyword' $file | wc -l

答案 2 :(得分:0)

试试这个:

ls -1 | grep .*keyword.*keyword.*