【发布时间】:2019-04-16 05:13:58
【问题描述】:
我是最近的命令行用户,因此我需要一些帮助才能使用 awk 按列拆分文本文件。对我来说困难在于我希望第 i 个文件名是第 i 列第一行的文本。
这就是我的想法:
awk '{for(i = 2; i <= NF; i++){name= ??FNR == 1 $i?? ;print $1, $i > name}}' myfile.txt
但我不知道如何设置名称变量...
输入:myfile.txt
'ID' 'sample_1' 'sample_2' ...
'id_1' 1 2 ...
'id_2' 2 3 ...
预期输出:
sample_1.txt:
'ID' 'sample_1'
'id_1' 1
'id_2' 2
sample_2.txt:
'ID' 'sample_2'
'id_1' 2
'id_2' 3
谢谢
【问题讨论】:
-
欢迎来到 SO,感谢您展示了您的尝试。请在您的帖子中添加输入和预期输出示例,然后让我们知道。
-
确实,在这种情况下,第 i 个文件名是什么? awk 一次读取一个文件,它的名称在
FILENAME变量中,但这似乎不是您要问的。 -
抱歉,我用输入/输出示例编辑了我的帖子
标签: awk command-line