删除文件名中的零

Remove zeros inside file name

我有这个文件名

1006_12_000123123_000023126.data

我想要这个文件名。我有大约 300000 个文件。

1006_12_123123_23126.png

我尝试了其中一些解决方案,但它们用于文件名,如 00002323.jpg

Bash command to remove leading zeros from all file names

我可以用mv重命名。

for original_name in *.data; do
    # determine new file name from original:
    # remove zeroes and change extension.
    new_name=$(echo "$original_name" | sed -e 's/_0*/_/g' -e s'/.data$/.png/')
    mv "$original_name" "$new_name"
done

使用这个

ls * | sed -e 'p;s/_0*/_/g' | xargs -n2 mv