內零我有這個文件名刪除文件名
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 ' –
好的,我編輯了我的答案來循環多個文件。希望有所幫助。 –
感謝這項工作 –