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

T-O*_*One 0 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
Run Code Online (Sandbox Code Playgroud)

输出应如下所示:

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.
.....
Run Code Online (Sandbox Code Playgroud)

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

Jef*_*ler 5

相当直接:

awk '{ for(i=2; i <= NF; i++) print $1, $i}' < input
Run Code Online (Sandbox Code Playgroud)

在每一行,循环从2直到最后一个字段(N的棕土Fields),打印字段1和字段环状。