通过shell每行创建一个文件

通过shell每行创建一个文件

我有一个包含文件名列表的文件,如下所示

file1.cfg
file2.cfg
file3.cfg

我想使用 Linux 终端将其拆分为n具有给定文件名的文件,每个文件也包含文件名作为字符串。

例如,我希望转换后的内容file1.cfg

filename=file1.cfg

以及file2.cfg

filename=file2.cfg

ETC。

实现这一目标的最佳方法是什么?

答案1

假设你的文件被调用configs,你可以使用

for i in $(cat configs); do echo "filename=$i">$i; done

答案2

如果你算作awkshell,这简直就是

awk '{print "filename="$0 >$0}' file.cfg

答案3

像这样的事情应该可以解决问题:

while read line; do echo "filename=$line" > $line; done < file

它将打开文件,逐行读取,并且对于每一行创建一个文件,其名称是该行的内容,然后使用命令的内容echo(即filename =)将一行写入该文件。警告:我还没有真正测试过它。

相关内容