同じディレクトリにある3つのファイル名を変更したいとしましょう。例: test1.gzip test2.gzip test3.gzip
さて、上記のすべてのファイル名を次のように変更したいと思います。
テスト1_20180518.gzipテスト2_20180518.gzipテスト3_20180518.gzip
今結果をどのように取得できますか?誰か助けてください! !
bashスクリプトでこれを行う方法を教えてください。
答え1
「名前が変更された」バージョンを確認してくださいrename -V
。あなたが見るなら:
"
util-linux
"それからrename .gzip _$(date "+%Y%m%d").gzip *.gzip
"
File::Rename
"それからrename 'chomp(my $date = `date "+%Y%m%d"`); s/\.gzip/_$date.gzip/' *.gzip
答え2
考えられる解決策(ループ本文で1つを選択する必要があります):
#!/bin/bash
pattern="pattern"
i=0
for file in `find <your_path> -type f -name '*.zip'`
do
extension="${file##*.}"
filename="${file%.*}"
# without extenstion
mv "$file" "$filename-$pattern.$extension"
# whole filename
mv "$file" "$pattern-$i"
i=$((i + 1))
done