使用文件中的行来生成字符串和文件名

Stu*_*Tea 5 bash shell-script text-processing files

我有一个文件,foo.txt每行都有一个文件夹名称:

folder_1
folder_2
folder_3
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

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

换句话说,我想逐行读取文件,然后使用每一行来创建一个字符串并创建存储该字符串的文件的名称。

如何从 bash 的命令行执行这样的操作?

jim*_*mij 3

只需循环文件中的所有行:

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

当然,这假设您已经在foo.txt. 如果不是这种情况,那么首先使用 创建它们mkdir "$line"


另一种方法,用awk而不是循环是:

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