ソースディレクトリからターゲットディレクトリにファイルを移動するシェルスクリプト

ソースディレクトリからターゲットディレクトリにファイルを移動するシェルスクリプト

ソースの場所にあるすべての.csvファイルをターゲットの場所に移動するシェルスクリプトを作成します。条件は、対応する.txtファイルを含む.csvファイルのみを移動する必要があることです。

例: source:/home/source には abc.csv,abc.txt,def.csv,def.txt,efg.csv があるため、条件に応じて abc.csv,def.csv だけをターゲットディレクトリに移動し、efg に移動する必要があります。します。 csvは対応するefg.txtファイルではないため、ターゲットディレクトリに移動しないでください。

答え1

ファイルを繰り返しながら、同じファイル名の幹を持つファイルがあるかどうかをcsvテストします。txt存在する場合、csvファイルが移動されます。

sourcedir=/some/dir
destdir=/some/other/dir

for csvfile in "$sourcedir"/*.csv; do
    txtfile="${csvfile%.csv}.txt"
    if [ -e "$txtfile" ]; then
        printf 'Will move %s to %s\n' "$csvfile" "$destdir"
        # mv -i "$csvfile" "$destdir"
    fi
done

パラメータ拡張は現在のファイル名の末尾を${csvfile%.csv}.txt削除します。.csv$csvfile.txt

このコマンドはセキュリティ上の理由からmvコメントアウトされました。

関連情報