如何将命令的输出写入文件名基于部分命令输出的多个文本文件?
How do I write output of a command to multiple text files where the file names are based on part of the command output?
我有一个命令以这种格式向控制台输出几行文本:<FILE_NAME>: <STRING_VALUE>
。
示例:
FILE1: abc1
FILE2: def2
FILE3: ghi3
我想创建文件 FILE1、FILE2 和 FILE3,内容分别为 abc1、def2 和 ghi3。
类似
echo "text" >> FILE1
但让它递归执行
执行此操作的单行命令是什么?
只需将您的命令通过管道传递给 awk:
command | awk -F ': *' '{print > }'
我们将字段分隔符定义为F ': *'
(冒号后跟任意数量的空格)。
我们打印每行的第二个字段并将其重定向到第一个字段的值。
$ ls
FILE1 FILE2 FILE3
$ cat FILE*
abc1
def2
ghi3
我有一个命令以这种格式向控制台输出几行文本:<FILE_NAME>: <STRING_VALUE>
。
示例:
FILE1: abc1
FILE2: def2
FILE3: ghi3
我想创建文件 FILE1、FILE2 和 FILE3,内容分别为 abc1、def2 和 ghi3。
类似
echo "text" >> FILE1
但让它递归执行
执行此操作的单行命令是什么?
只需将您的命令通过管道传递给 awk:
command | awk -F ': *' '{print > }'
我们将字段分隔符定义为F ': *'
(冒号后跟任意数量的空格)。
我们打印每行的第二个字段并将其重定向到第一个字段的值。
$ ls
FILE1 FILE2 FILE3
$ cat FILE*
abc1
def2
ghi3