AWK:打印每行的第一个字段作为相应行中每个后续字段的标识符

AWK:打印每行的第一个字段作为相应行中每个后续字段的标识符

我有一个像这样的输入文件,其中有一个空白作为字段分隔符

AAABBB: 243.234.12.2 123.3.2 231.5.12 451.192.29.9
BBXDS: 324.22.32.5 235.235.283 234.239. 234.23.23.1 
DDF: 23.12.59.09 98.39.239.29 394.293.2.2

输出应如下所示:

AAABBB: 243.234.12.2
AAABBB: 123.3.2
AAABBB: 231.5.12
AAABBB: 451.192.29.9
BBXDS: 324.22.32.5
BBXDS: 235.235.283
BBXDS: 234.239.
.....

每行的第一个字段是一个标识符,应作为新行打印在相应行中每一列的前面,直到该行的末尾。

答案1

相当简单:

awk '{ for(i=2; i <= NF; i++) print $1, $i}' < input

在每一行上,从 2 循环到最后一个字段(N字段数F),打印字段 1 和循环字段。

相关内容