我試圖用find和sed重命名一些目錄,但切換基於目錄名稱。使用查找和sed替換重命名目錄
例子目錄名:
rabbit_stand_a_e
rabbit_stand_a_ne
我希望這些改變爲:
rabbit_a_stand_e
rabbit_a_stand_ne
,所以我想基本上是由分裂_和開關$ 2和大約$ 3
我試着幾件事情,但不能得到任何工作,這是我現在在哪裏。
find . -type d -execdir mv {} `echo {} | sed -E 's/rabbit_([a-z]+)_([abc])_/rabbit_\2_\1_/'` \;
此誤差與
mv: cannot move ‘rabbit_stand_a_e’ to a subdirectory of itself, ‘rabbit_stand_a_e/rabbit_stand_a_e’
,並學會這樣調試問題通過選擇1個代表文件名,而不是使用'find',使用'回聲rabbit_stand_a_e | sed -E'/....//'看你的問題在哪裏。在這種情況下,你可以意識到'mv'需要和源以及目標參數。無論如何...祝你好運! – shellter
嗯,我以爲我給了兩個,'mv {} \'echo .....'{}成爲當前的 – Rob
我的sed工作正常,它是獨立的,就像你建議'echo rabbit_stand_a_w | sed -E's/rabbit _([az] +)_([abc])_/rabbit_ \ 2_ \ 1 _ /''所以我必須錯過使用-exec或mv – Rob