私はこのスクリプトを持っています。動作しません。スクリプトは、キーワード 'キーワード'が2回現れるすべてのファイルのリストを返すようにします。grepファイルのワードカウントが数値の場合、
#!/bin/bash
for file in * ; do
if [ $(grep 'keyword' $file | wc -l) -eq 2 ]
then
echo $file
fi
done
私はこのスクリプトを持っています。動作しません。スクリプトは、キーワード 'キーワード'が2回現れるすべてのファイルのリストを返すようにします。grepファイルのワードカウントが数値の場合、
#!/bin/bash
for file in * ; do
if [ $(grep 'keyword' $file | wc -l) -eq 2 ]
then
echo $file
fi
done
あなたはgrepのの '-o' オプションを使用する場合があります、これが出力されます独自のライン内のすべての試合フルラインを印刷する代わりに。同じ行に2回以上出現したときにも機能します。
grep -o 'keyword' $file | wc -l
これは試してもうまくいくようです。可能であれば、どのように動作していないか、最小限の例を示してください。また、 '$ file'の代わりに' '$ file" 'を使って、ファイル名にスペースを含むスクリプトを守ってください。 –
これは、 'keyword 'が同じ行に2回出現した例も見逃していると思います。 – DSM
@Eduardo私はあなたに答えを与えるだろうが、それはコメントです。とにかくあなたは正しいと思った。私はちょうど出力が始まるのに十分長く待っていなかった。 – nottinhill