特定の文字を含むファイルを削除する

特定の文字を含むファイルを削除する

ディレクトリにファイルのリストがあり、0または7を含むすべてのファイルを削除する必要があります。 grepを使用する必要があるようですが、よくわかりません。どんなアイデアがありますか?

ベストアンサー1

あなたがすることは、特定の条件テストに対してファイルを評価し、条件テストの結果に基づいて各ファイルに対して作業を実行することです。これがこのコマンドの正確な目的ですfind

これはポータブル(POSIX互換)コマンドは、内容に「0」または「7」を含む一般ファイルを削除します。

find . -type f -exec grep -q '[07]' {} \; -exec rm {} +

気づくこれ再帰的現在のディレクトリを検索します。

これが必要でない場合は、masterデータベースが-maxdepth利用可能であることを確認できます(この場合、masterデータベースを使用することもできます。POSIX-deleteではどちらも指定しません)。

find . -maxdepth 1 -type f -exec grep -q '[07]' {} \; -delete

または、以下の技術を適用できます。

おすすめ記事