ファイルの行を使用して文字列とファイル名を生成する

ファイルの行を使用して文字列とファイル名を生成する

foo.txt各行にフォルダ名を持つファイルがあります。

folder_1
folder_2
folder_3

私はこのようなことをしたい:

cat foo.txt | xargs -I {} echo 'function {}() { return stuff; }' > {}/function.js

つまり、ファイルを1行ずつ読み、各行を使用して文字列を作成し、その文字列が格納されているファイルの名前を作成したいと思います。

Bashのコマンドラインで同様の操作をどのように実行できますか?

ベストアンサー1

ファイルのすべての行を繰り返すだけです。

while read line
do
    echo "function $line() { return stuff; }" > "$line/function.js"
done < foo.txt

もちろん、これはすでに存在していると仮定しますfoo.txt。それ以外の場合は、まずを使用して作成しますmkdir "$line"


awkループの代わりに使用する別の方法は次のとおりです。

awk '{printf("%s\n","function "$0"() { return stuff; }")>$0"/function.js"}' foo.txt

おすすめ記事