将行转换为unix中的列

gyr*_*ous 4 unix linux awk solaris nawk

我有输入文件,如下所示

输入文件

10,9:11/61432568509
118,1:/20130810014023
46,440:4/GTEL
10,9:11/61432568509
118,1:/20130810014023
46,440:4/GTEL
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出.

10,9:11/61432568509,118,1:/20130810014023,46,440:4/GTEL
10,9:11/61432568509,118,1:/20130810014023,46,440:4/GTEL
Run Code Online (Sandbox Code Playgroud)

我尝试过使用awk命令,但我没有获得所需的输出.任何人都可以帮助我吗?

awk -F"" '{a[$1]=a[$1]FS$2}END{for(i in a) print i,a[i]}' inputfile
Run Code Online (Sandbox Code Playgroud)

dev*_*ull 7

使用awk:

$ awk 'ORS=(NR%3==0)?"\n":","' inputfile
10,9:11/61432568509,118,1:/20130810014023,46,440:4/GTEL
10,9:11/61432568509,118,1:/20130810014023,46,440:4/GTEL
Run Code Online (Sandbox Code Playgroud)

编辑:由sudo_OEd Morton评论,以下变体更具可移植性:

$ awk 'ORS=(NR%3?",":RS)' inputfile
10,9:11/61432568509,118,1:/20130810014023,46,440:4/GTEL
10,9:11/61432568509,118,1:/20130810014023,46,440:4/GTEL
Run Code Online (Sandbox Code Playgroud)

  • +1但是你应该在三元运算符中使用括号以避免歧义*(在Mac上会失败)*.我写的是'awk'ORD =(NR%3?",":RS)'file` (4认同)