我有100个名为sub1.txt, sub2.txt,..., sub100.txt
的文件。我想将它们重命名为all1.txt, all2.txt,..., all100.txt
。怎样才能在linux(unix)中做到这一点?
感谢您的帮助。
答案 0 :(得分:7)
下面的脚本将使用模式sub*.txt
重命名任意数量的文件。由于echo
,这也是干运行。只要您对结果感到满意,只需删除echo
。
#!/bin/bash
for file in sub*.txt; do
echo mv "$file" "all${file#sub}"
done
答案 1 :(得分:2)
使用rename
的util-linux-ng版本:
rename sub all sub*.txt
使用rename
的Perl脚本版本:
rename 's/^sub/all/' sub*.txt
答案 2 :(得分:1)
for i in `seq 1 100`; do mv sub$i.txt all$i.txt; done
或
for i in sub*.txt; do j=`echo $i|sed -e s/sub/all/`; mv $i $j; done
答案 3 :(得分:0)
for F in sub*.txt ; do mv $F all${F#sub}; done
答案 4 :(得分:0)
红宝石(1.9 +)
ruby -e 'Dir["sub*.txt"].each {|x| File.rename(x, x.gsub(/^sub/,"all") ) }'
答案 5 :(得分:-1)
总有一种新方法可以做到:
$ ls sub*.txt | tr -d "sub" | xargs -I{} mv sub{} all{}
希望它有所帮助。