前言:我是一个绝对的Linux新手,请不要严格评判。
我有一个目录,其中包含 .pnm 扩展名的多个图像(超过 100 个)。我希望从某种意义上重命名它们,它们的名称应该是“img1.pnm”,“img2.pnm”,“img3.pnm”等。所以它们的名称中应该有一个共同的部分——“img”以及从“1”开始的不同索引。
我怎样才能做到这一点?
答案1
尝试以下操作...
unset i; for f in *.pnm; do mv "$f" "img$((++i)).pnm";done
答案2
尝试
ls *.pnm | awk -F. '{printf "mv %s img%d.pnm\n",$0,NR;}' | bash
在哪里
ls *.pnm |
列出 pnm 的文件列表awk -F. '{printf "mv %s img%d.pnm\n",$0,NR;}'
启动 awk- -F。使用 。作为分隔符
'{printf "mv %s img%d.pnm\n",$0,NR;}'
打印移动说明并为文件编号。
| bash
指令是给 bash 的。
你甚至可以预览
ls *.pnm | awk -F. '{printf "mv %s img%d.pnm\n",$0,NR;}'