このようなファイル名があります。
a2.txt.gz
d12.txt.gz
k5.txt.gz
m4.txt.gz
...
文字 1 個、数字 1 個または 2 個、その後に .txt.gz が続きます。以下のように数字の前にゼロを追加したいと思います。
a02.txt.gz
d12.txt.gz
k05.txt.gz
m04.txt.gz
...
似たようなことを試しましたが、うまくいかないようです。
find . | grep -E "[a-z][0-9]{1}\.+" | sed -er s/\([a-z]\)\([0-9]{1}\)\(.txt.gz\)/\10\2\3/
私のロジックは、最初に1桁のファイル名をgrepしてから、文字、数字、および.txt.gzの3つの部分に分割し、数字の前に0を追加することです。しかし、私はそれを動作させることはできません。名前を変更する部分はよくわかりません。
ベストアンサー1
私はそうします:
for f in [a-z][0-9].txt.gz;
do
mv $f "${f:0:1}0${f:1}"
done
私はこれを他のものから適用しました(awk
もっと必要なので使用しましたが、コメントのおかげでより良くしました)。