我有一个像这样的输入文件,其中有一个空白作为字段分隔符
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 和循环字段。