複数のファイルをインポートして名前を付けます。
data_a_LT.fits
data_a_LT.coo
data_a_LT.ec
data_a_LT.grp
すべての「a_LT」を「LT_A」に置き換えたいです。
data_LT_A.fits
data_LT_A.coo
data_LT_A.ec
data_LT_A.grp
1つのコマンドでこれを行う方法。それは次のとおりです。
mv *a_LT* *LT_A*
答え1
バッシュ使用:
for file in *; do [[ -f "$file" ]] && mv "$file" "${file/a_LT/LT_A}"; done
data_LT_A.coo
data_LT_A.ec
data_LT_A.fits
data_LT_A.grp
答え2
もしrename
次のコマンドを使用できます。
rename 's/a_LT/LT_A/' *
別の方法awk
:
find -type f | awk -F'a_LT' '{printf "mv \"%s\" \"%sLT_A%s\"\n", $0, $1, $2}' | bash
答え3
私はxargsを使うのに慣れています。
ls -1 | sed 's/\(\(.*\)a_LT\(.*\)\)/\1 \2LT_A\3/' | xargs -n 2 mv
答え4
私は次の方法を選択しましたが、うまくいきます。
rename 's/a_LT/LT_A/g' *
簡潔で覚えやすい1行。