2017-03-13 23 views
3

我有一個文件中的名稱列表,我需要從中創建目錄。該列表看起來像從保留空格的列表創建目錄

Ada Lovelace 
Jean Bartik 
Leah Culver 

我需要的文件夾是完全相同的,保留空白(s)。但隨着

awk '{print $0}' myfile | xargs mkdir 

創建單獨的文件夾爲每個單詞

​​

同樣的,

awk '{print $1 " " $2}' myfile | xargs mkdir 

發生在哪裏的錯誤?

回答

3

使用gnu xargs您可以使用-d選項僅將分隔符設置爲\n。這樣你也可以避免awk

xargs -d '\n' mkdir -p < file 

如果沒有gnu xargs做,那麼你可以使用tr把所有\n\0第一:

tr '\n' '\0' < file | xargs -0 mkdir 
2

@birgit:嘗試:完全根據您的樣品INPUT_FILE提供。

awk -vs1="\"" 'BEGIN{printf "mkdir ";}{printf("%s%s%s ",s1,$0,s1);} END{print ""}' Input_file | sh 
2
awk '{ system (sprintf("mkdir \"%s\"", $0)) }' YourFile 
# OR 
awk '{ print"mkdir "\"" $0 "\"" | "/bin/sh" }' YourFile 
# OR for 1 subshell 
awk '{ Cmd = sprintf("%s%smkdir \"%s\"", Cmd, (NR==1?"":"\n"), $0) } END { system (Cmd) }' YourFile 
  • 最後一個版本是更好的由於創建僅1子shell。
  • 如果有大量的文件夾(shell參數限制),您可以循環並創建幾個較小的命令