grep はファイル内の複数の文字列を検索し、サイズ順にファイルを一覧表示します。

grep はファイル内の複数の文字列を検索し、サイズ順にファイルを一覧表示します。

私は多くのファイルが.txtあるフォルダにあり、両方のファイルを含むすべてのファイルstringAstringB必ずしも同じ行にある必要はありません)を見つけて、ファイルをサイズ順(最も小さいものから大きいものまで)としてリストしたいと思います。

以下を試しましたが、動作しません。

ls -lS | for f in *; do grep -q stringA $f && grep -l stringB $f; done

誰にも良いアイデアがありますか?

ベストアンサー1

あなたはそれを使用することができますGNU find

find . -maxdepth 1 -exec grep -q stringA {} \; -exec grep -q stringB {} \; \
        -printf '%10s %p\n' | 
    sort -n

おすすめ記事