誰かがファイルの名前を変更する方法を提案できますか?
head.body.date.txt
到着する:
head_body_date.txt
名前変更を行う一行文はありますか?Unix?
ベストアンサー1
ファイル名を繰り返し、パラメータ拡張を使用して変換します。
for f in *.*.*.txt; do i="${f%.txt}"; echo mv -i -- "$f" "${i//./_}.txt"; done
パラメータ拡張モードでは、ファイル名の${f//./_}
すべてのsを.
s()に置き換えます。_
$f
上記は実際の名前を変更するために練習を実行し、以下を削除しますecho
。
for f in *.*.*.txt; do i="${f%.txt}"; mv -i -- "$f" "${i//./_}.txt"; done
以下だけでなく、すべての拡張を処理したい場合.txt
:
for f in *.*.*.*; do pre="${f%.*}"; suf="${f##*.}"; \
echo mv -i -- "$f" "${pre//./_}.${suf}"; done
削除後の実際の動作確認echo
:
for f in *.*.*.*; do pre="${f%.*}"; suf="${f##*.}"; \
mv -i -- "$f" "${pre//./_}.${suf}"; done
通常、ポイント数に関係なく、少なくとも1つは次のようになります。
for f in *.*; do pre="${f%.*}"; suf="${f##*.}"; \
mv -i -- "$f" "${pre//./_}.${suf}"; done