我有数百个编号的文件
file_001.txt
file_002.txt
file_003.txt
...
和单独文件中相同数量的字母
letters.txt:
abc
def
ghi
...
如何以这种方式重命名文件:
file_001_abc.txt
file_002_def.txt
file_003_ghi.txt
非常感谢!
答案 0 :(得分:1)
我首先想到了index
和paste
的组合。
awk
如果您没有可以替换paste files.txt letters.txt | awk '{split($1,file,"."); print file[1]"_"$2"."file[2]}'
的文件列表,例如files.txt
,则这取决于您的具体设置。
答案 1 :(得分:0)
count=0
for i in `cat f1`;do
let count++
var=$(head -$count letters.txt | tail -1)
mv $i ${i%.txt}_$var.txt
done
希望这有帮助
由于
答案 2 :(得分:0)
我用xargs注释了这一行,所以你可以查看脚本 如果您喜欢,请删除评论。
start=0
while read next; do
(( start = start + 1 ));
printf "mv file_%03d.txt file_%03d_%s.txt\n" ${start} ${start} ${next}
# printf "file_%03d.txt file_%03d_%s.txt" ${start} ${start} ${next} | xargs mv
done < letters.txt