ISS45_20200302030042.zip
R0387F200229.zip
この状況に適したシェルスクリプトが欲しいです。上には2つのファイル名があります。両方のファイル名の前に数字部分を追加したいと思います。私が望むものは、以下の例を参照してください。
20200302030042_ISS45_20200302030042.zip
200229_R0387F200229.zip
for f in *.zip; do
mv "$f" $(sed -E 's/^(.+)_([^.]+)\./\2_\1./' <<< "$f")
done
私はこれを使用しています。ファイルでのみ機能しますiss45
が、R
ファイルでは機能しません。
ベストアンサー1
sed
必要なコマンドは次のとおりです。
sed -r 's/^(.*)([^[:digit:]])([[:digit:]]+)\.zip$/\3_\1\2\3.zip/'
$ echo ISS45_20200302030042.zip |
sed -r 's/^(.*)([^[:digit:]])([[:digit:]]+)\.zip$/\3_\1\2\3.zip/'
20200302030042_ISS45_20200302030042.zip
$ echo R0387F200229.zip |
sed --posix -r 's/^(.*)([^[:digit:]])([[:digit:]]+)\.zip$/\3_\1\2\3.zip/'
200229_R0387F200229.zip