2016-02-15 75 views
0

我沒有成功寫入正確的代碼!

我的目錄是這樣無法重命名子目錄中的文件(有條件)[shell腳本]

/Users/dave/yellow/shade001/light 
/Users/dave/yellow/shade001/dark1 
/Users/dave/yellow/shade001/dark2 
... 
/Users/dave/yellow/shade999/light 
/Users/dave/yellow/shade999/dark1 
/Users/dave/yellow/shade999/dark2 

有黃色目錄內的約999樹蔭文件夾,每個包含 2或3個文件(light始終存在,dark1總是存在的,並且有時dark2存在)。我想重新命名lightdark1和刪除dark2這樣的:

light.txt renamed to lgt.txt 

dark1.txt renamed to dk1.txt 

dark2 (whenever found) should be deleted 

這裏是我做的:

for /r %x in (light.txt) do ren "%x" lgt.txt for /r %x in (dark1.txt) do ren "%x" dk1.txt find . -type f -name 'dark2' -delete done

+0

而......問題是什麼?問題在哪裏? – pkalinow

回答

1

Bash或類似的殼:

find shade* -name light.txt | while read NAME; do mv $NAME `dirname $NAME`/lgt.txt; done 

類推與dark1dark2(在後一種情況下,而不是mv)。

+0

您的意思是: find shade * -name light.txt |同時閱讀NAME;做mv $ NAME'dirname $ NAME'/lgt.txt;完成 查找陰影* -name dark1.txt |同時閱讀NAME;做mv $ NAME'dirname $ NAME'/dk1.txt;完成 找到shade * -name dark2.txt |同時閱讀NAME;做rm $ NAME'dirname $ NAME';完成 – tsumaranaina

+0

不,最後一個應該是'find shade * -name dark2.txt |同時閱讀NAME;做rm $ NAME;完成' – pkalinow

+0

或者更簡單:'找到陰影* -name dark2.txt -exec rm {} \;'。順便說一句,要小心這樣的命令,因爲一個小錯誤可能會刪除其他文件... – pkalinow

相關問題