awk - 将行变量和打印组合为列

PoG*_*bas 2 awk

我确实有一个对我来说太难的问题,但相信它可以在awk中轻松解决.
我的数据如下:

8377885 8384365 8385357 8385877 @ 8378246 8384786 8385450 8386102
66999065 66999928 67091529 @ 66999090 67000051 67091593

这是不同的行,'@'正好在它们的中间.我想:
1.从第一个到最后一个用'@'分隔的线元素;
2.将所有组合元素打印为列.
首选输出如下所示:

8377885 8378246
8384365 8384786
8385357 8385450
8385877 8386102
8390268 8390996
66999065 66999090
66999928 67000099
67091529 67091593

希望有人可以帮助我.

Bir*_*rei 5

在这里你有一个单行:

awk 'BEGIN { FS = "[@ ]+" } { for (i=1;i<=NF/2;i++) { printf "%s %s\n", $i, $(NF/2+i) } }' infile
Run Code Online (Sandbox Code Playgroud)

产量:

8377885 8378246
8384365 8384786
8385357 8385450
8385877 8386102
66999065 66999090
66999928 67000051
67091529 67091593
Run Code Online (Sandbox Code Playgroud)