使用mac.I有幾個文件夾包含png圖像。重命名列表中的osx文件
我也有他們的原始文件名稱(圖像)和我想重命名他們的名稱的列表。
任何人可以幫我一個腳本嗎? (我走過了所有方法都是模式匹配基礎,他們不提關於使用列表重命名的任何東西)
我有列表,這樣
「焦糖布丁雲母」,「E2DBCF CSV 「
舊名是‘焦糖布丁Mica.png’和新的名稱應該是‘E2DBCF.png’。像這樣,我有數百個文件
使用mac.I有幾個文件夾包含png圖像。重命名列表中的osx文件
我也有他們的原始文件名稱(圖像)和我想重命名他們的名稱的列表。
任何人可以幫我一個腳本嗎? (我走過了所有方法都是模式匹配基礎,他們不提關於使用列表重命名的任何東西)
我有列表,這樣
「焦糖布丁雲母」,「E2DBCF CSV 「
舊名是‘焦糖布丁Mica.png’和新的名稱應該是‘E2DBCF.png’。像這樣,我有數百個文件
sed -e "s/^\"\([^\"]*\)\",\"\([^\"]*\)\"$/mv '\1' '\2'/" | sh
...只要你不有換行符或單引號或雙引號文件名稱。
取出| sh
進行測試。
好吧,我會嘗試...我的文件名有空格btw – humblePilgrim
空格很好,只是不引用(因爲他們需要逃脫)或換行符(因爲'sed'不能很好地處理數據,這不是純粹的行無需額外的努力)。 – tripleee
試試:
#!/bin/bash
renamed=0
failed=0
while IFS=',' read old_name new_name; do
old_name=`echo ${old_name}.png | sed 's/\"//g'`
new_name=`echo ${new_name}.png | sed 's/\"//g'`
if [ -e "$new_name" ]; then
mv "$new_name" "$old_name"
#echo "$new_name renamed to $old_name"
renamed=$[$renamed+1]
else
#echo "$new_name not found!"
failed=$[$failed+1]
fi
done < "myfile"
echo "success renamed: $renamed"
echo "failed rename: $failed"
通過IFS
我添加一個分隔符,將節省在new_name
變量old_name
第一值和第二值。 然後通過sed
命令我將"
替換爲無值。然後檢查文件是否存在,然後mv
命令將new_name
替換爲old_name
。最後它會告訴你數字爲success
和failed
的動作。
注意:它在當前目錄中工作,除了在文件名中添加目錄地址。
我是新來的..你能解釋一下工作嗎? – humblePilgrim
@MithunMadhav對不起,我更新了帖子。覈實。注意:我在Linux平臺上嘗試過。希望它適合你。 – Mortezaipo
@MithunMadhav你應該把'myfile'改成你的文件名。 – Mortezaipo
你能告訴我們該文件的一些行嗎? – Mortezaipo
好吧讓我編輯問題 – humblePilgrim
我編輯了問題 – humblePilgrim