内零我有这个文件名删除文件名
1006_12_00_000023126.data
,我想这个文件名。我有300000个文件。
1006_12_123123_23126.png
我尝试了这些解决方案的SOM,但它们对于像名00002323.jpg
Bash command to remove leading zeros from all file names
我可以使用mv重命名。
内零我有这个文件名删除文件名
1006_12_00_000023126.data
,我想这个文件名。我有300000个文件。
1006_12_123123_23126.png
我尝试了这些解决方案的SOM,但它们对于像名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
注意,它会遍历当前目录中的所有文件,并删除其名称中的零 –
它返回错误 -sh:/ bin/ls:参数列表太长 –
这不被鼓励。在处理文件名时,'ls'是一个不好的工具。正确的方法是'*'或'find。 -print0 | xargs -0'或'find。 -exec'模式。 – HuStmpHrrr
很好的解决方案,但我西港岛线需要这个像 循环'到* _ * _ * _ *文件。数据 做 MV“$ {文件} “”$ {file/.data/.png}“ done ' –
好的,我编辑了我的答案来循环多个文件。希望有所帮助。 –
感谢这项工作 –