2014-02-14 56 views
1

我正在編寫一個bash腳本來使用awk的輸出創建名稱中帶有空格的文件夾。使用awk和mkdir創建具有空格的目錄

getAuthors() { 
    echo "$1" | awk -F ', |, and |and ' '{ for (i =1; i<=NF; i++) system("mkdir "$i" ") }' 
} 

該功能將在沿着「索克拉提斯Katsikas和伊薩克阿古多(編)」行的字符串。我從pdf中抓取所有作者,並且必須根據我爲awk字段分隔符創建的正則表達式來分割它們。但是,當我嘗試調用mkdir爲每個單獨的作者創建文件夾時,它會嘗試爲每個單獨的單詞創建一個目錄。例如。對於我使用的示例字符串,它將從Isaac Agudo(eds。)中拆分Sokratis Katsikas,但mkdir將嘗試爲Sokratis,Katsika,Isaac和Agudo創建單個文件夾。我該如何做到這一點,所以對mkdir的調用保留空格而不是試圖爲每個單詞創建文件夾?

回答

2

讓你的system功能與附加報價:

system("mkdir \"" $i "\"") 
0

添加一個將空間更改爲\ space的sed命令。

+0

我真的很新的bash的腳本,所以我不知道你的意思。 – user1443362

+0

sed -i's// \'/'文件名 – enedil