21

複数行のファイルがたくさんありますが、ほとんどの場合、行の 1 つに特定のパターンが含まれています。このパターンの行を持たないすべてのファイルをリストしたいと思います。

4

3 に答える 3

39

パターンなしでファイルを作成するには、「-L」オプションを使用します。マニュアルページによると:

-L, --files-without-match

通常の出力を抑制します。代わりに、通常出力が出力されない各入力ファイルの名前を出力します。スキャンは最初の一致で停止します。

于 2009-05-19T07:09:53.890 に答える
6

grep は一致があったかどうかを示すために 0/1 を返すので、次のようなことができます。

for f in *.txt; do
    if ! grep -q "some expression" $f; then
        echo $f
    fi
done

編集: -L オプションも使用できます。

grep -L "何らかの式" *

于 2009-05-19T07:01:17.710 に答える
0

"count" を試して、":0" に等しい場所をフィルター処理してください:

grep -c [pattern] * | grep ':0$'

(TurboGREPを使用する場合、 -L スイッチはありません;))

(編集:名前に「:0」を含むファイルがある場合に備えて、正規表現の最後に「$」を追加しました)

于 2009-05-19T07:11:21.017 に答える