2017-03-13 12 views
3

ディレクトリを作成するために必要なファイルのリストがあります。リストは次のように見えますリストから空白を保存してディレクトリを作成する

Ada Lovelace 
Jean Bartik 
Leah Culver 

空白を残して、同じフォルダにする必要があります。しかし

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を持っていないなら、あなたはすべての\n\0に最初に変換することtrを使用することができます。

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サブシェルの作成に良くによるものです。
  • 膨大な量のフォルダ(シェルパラメータの制限)がある場合、ループしてより小さいコマンドを何回か作成することができます。
関連する問題