条件に応じてファイルを移動する

条件に応じてファイルを移動する

誰もが私の要件の解決策を見つけるのに役立ちますか?

要件は、ディレクトリーをスキャンし、そのディレクトリーに入ってくるすべてのファイルを読み取り、「AB00732614」などの開始文字列を検索するシェルスクリプトを作成する必要があることです。 AB*を含むすべてのファイルを検索し、ファイルを別のディレクトリに移動します。

答え1

文字列ABなどを想定します。の一部ですコンテンツ移動するファイルの数:

find /path/to/dir -type f -exec grep -qE 'AB[0-9]{8}' {} \; -exec mv -i {} /path/to/destination/ \;

findこれは照会に使用されます/path/to/dir。各ファイルに、grep拡張正規表現(8桁の数字が続く文字列)AB[0-9]{8}と一致するものが含まれていることを確認してください。ABその場合、ファイルはディレクトリに移動されます/path/to/destination/

移動するファイルと同じ名前の別のファイルがターゲットディレクトリにすでに存在する場合は、そのファイルを上書きするかどうかを確認する必要があります。

答え2

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

find . -type f -iname 'AB*' -exec mv -t ./another_directory/ {} \+

ここでは非常によく説明されています。https://stackoverflow.com/a/5607677

関連情報