如何将具有不同长度的行的文件转换为单列,将行的第一个单词添加到单独的列

时间:2019-01-31 14:59:07

标签: linux

我有一个文件“ foo.txt”,其格式如下:

chr1 11160 12411
chr2 9068719 9068893 9069194

请注意,每一行都有不同数量的字段。我想将其转换为这样:

chr1 11160
chr1 12411
chr2 9068719
chr2 9068893
chr2 9069194

文件现在是2列,每行的第一个单词现在是第一列

2 个答案:

答案 0 :(得分:0)

遍历字段,每次都打印第一个字段。

awk '{for(i=2;i<=NF;i++) printf "%s %s\n",$1, $i}' foo.txt
chr1 11160
chr1 12411
chr2 9068719
chr2 9068893
chr2 9069194

答案 1 :(得分:-1)

尝试一下

awk '{for(i=1;i<=NF;i++) printf $1 " %s\n",$i}' dk_tmp.txt