次のファイルがあります。
test.tar.gz.part00
test.tar.gz.part01
test.tar.gz.part02
…
test.tar.gz.part99
置き換える必要があります...、.gz
Debianが提供しない.lz4
依存関係を使用しないことをお勧めします(たとえば)。rename
助けてくれてありがとう!
答え1
あなたはそれを使用することができますrename
。
rename gz lz4 ./*part*
いいえrename
:
for file in ./*part*; do mv "$file" "${file//gz/lz4}"; done
答え2
rename
もともとはperl
80年代の非常に短いサンプルスクリプトです。
非常に短く、どのスクリプトにも簡単にインライン化できます。
perl -e 'for (@ARGV) {
$old = $_; rename $old, $_ if s/\.gz(\.part\d+)\Z/\.lz4$1/s
}' -- *.gz.part*
さらに、perl
一般bash
的にはDebian GNU / Linuxベースのシステムでデフォルトで提供されている別の言語ソルバーです(これがGNUシェルであるため)。このシェルでは、次のことができます。
shopt -s extglob nullglob
for file in *.gz.part+([0123456789]); do
mv -T -- "$file" "${file%.*.*}.lz4.${file##*.}"
done
等しいことで。