我在文件夾/根如何更改循環中的文件名?
file0001
file0002
file0010
file0011
file0100
file0121
文件,我有這樣的代碼
for ((i=1; i<=1000; i++))
do
file='/root/file'$i
done
我需要循環
file0001 --> file1
file0010 --> file10
file0100 --> file100
任何想法來改變文件名?
我在文件夾/根如何更改循環中的文件名?
file0001
file0002
file0010
file0011
file0100
file0121
文件,我有這樣的代碼
for ((i=1; i<=1000; i++))
do
file='/root/file'$i
done
我需要循環
file0001 --> file1
file0010 --> file10
file0100 --> file100
任何想法來改變文件名?
如果要修剪前導零,簡單的bash腳本可以做的伎倆:
#!/bin/bash
while read line
do
name=`echo $line | cut -c5- | sed 's/^[0]*//'`
echo "file$name"
done <your_file.txt
結果: ....
file0100-> file100
file0121-> file121
從您的文件名的數字部分頂部刪除尾隨零使用:
rename 's/^file0*/file/' file*
嘗試:
cd /root
for f in file*
do
echo mv "$f" "${f%%[0-9]*}${f#"${f%%[1-9]*}"}"
done
如果確定刪除回聲......
你就不能使用'rename'? – Ander2 2013-03-14 08:36:28
我不確定你需要什麼:你需要瀏覽所有文件嗎?你需要在循環中生成他們的名字,以便你可以對它們進行處理?你可以只在'/ root/file *;'(或'/ root/file [0-9] *')中做文件嗎? – 2013-03-14 08:56:33