我正在嘗試使用SED創建一系列所有包含同名文件的目錄,但每個目錄中的每個文件都會有一行不同。SED目錄創建錯誤
for i in $(cat ~/SCRIPTS/AALIST.txt); do
mkdir ~/jan10/25
sed -e "s/HAT/${i}/" <~/SCRIPTS/HAT25.inp > ~/jan10/25/25$i/mat.inp
AALIST.txt簡直是含有有效文件..
A
B
C
D
E
而HAT25.inp有文本的多行,然後在第25行字「帽子」,這頂帽子應該用A,B,C等代替。在目錄25中,SED應該創建名爲25A,25B,25C等的目錄。這些目錄的內部應該是原始的HAT25.inp文件,用HAT替換爲字母父目錄。這意味着目錄25A應該包含HAT.inp,並將其重命名爲mat.inp,並在第25行包含A,而不是HAT。不幸的是,當我嘗試執行上面我的代碼,我得到的錯誤:
cannot create directory `/home/user/jan10/25': File exists
./loop.sh: line 23: /home/user/jan10/25/25$i/mat.inp: No such file or directory
有什麼我做錯了,我無法確定我做了什麼錯誤的任何見解。
編輯:
通過註釋掉MKDIR行,我現在收到以下錯誤。創建目錄「25」,但不創建目錄25A,25B等。收到的錯誤如下。
./loop.sh: line 23: /home/user/jan10/25/25A/mat.inp: No such file or directory
你意識到你的'mkdir'在你的循環中,並且在每個循環中執行因此,'不能創建目錄...'。 ?也許你真的想'mkdir〜/ jan10/25/$ i'? '25/25 $ i'的錯誤有點神祕。鑑於你的代碼,我不會期望這一點。是正在執行的真正的代碼?祝你好運。 – shellter 2014-11-06 16:01:32
你是對的,mkdir絕對不應該在循環中,但即使這個問題被註釋掉,問題仍然存在。目錄25被創建,但是沒有一個子目錄(25A,25B等)被創建。我現在收到的錯誤已經在上面編輯了! – George 2014-11-06 16:08:32
我真的認爲你問題的主要來源是你想'mkdir〜/ jan10/25/$ i',對吧?使用它可能會修復其他錯誤。 – shellter 2014-11-06 16:09:53