在Linux下重命名文件,删除一些字符串



我有很多这样的文件:

  • download_agrupocqa_127_1656097965.tar.gz
  • download_bjxkwris_127_1656097966.tar.gz
  • download_climpieza_127_1656097965.tar.gz
  • download_dhermagqu_127_1656097966.tar.gz

你知道将文件夹中的所有文件重命名为这种格式的命令吗?

  • agrupocqa.tar.gz
  • bjxkwris.tar.gz
  • climpieza.tar.gz
  • dhermagqu.tar.gz

表示删除download__127_1656097965

BASH:

for file in *.tar.gz ; do 
suffix="${file#download_}"      # this removes download_
prefix="${suffix%%_*.tar.gz}"   # this removes everything after underscore
mv "$file" "${prefix}.tar.gz"   # this renames the file
done

如果您有sed:

for file in *.tar.gz ; do 
newname=$(echo "$file" | sed 's/download_([^_]*)_[0-9_]*..*/1.tar.gz/')
mv "$file" "$newname"
done

最新更新