我需要将文件中的所有其他行加入其后的行。
1, 2
3, 4
5, 6
7, 8
9, 10
11, 12
输出应该是:
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
我使用过awk '{getline b;printf("%s,%s\n",$0,b)}' file
。但是,输出是:
1, 2
,3, 4
5, 6
,7, 8
9, 10
,11, 12
我想知道每条线如何与它之后的线连接。
答案 0 :(得分:3)
$ awk '{a=$0; getline; print a", "$0}' file
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
a=$0
这会将当前行保存在变量a
。
getline
这会将下一行读入$0
。
print a", "$0
它们并排打印它们之间的逗号。
答案 1 :(得分:2)
您可以使用
sed 'N;s/\n/, /' file
这个N附加下一行,s命令用逗号和空格替换换行符。
输出结果为:
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
答案 2 :(得分:1)
使用$ awk 'ORS=NR%2?", ":RS' file
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
执行此操作的经典和惯用方法如下:
ORS=NR%2?", ":RS
这基于Idiomatic awk中的示例,其工作原理如下:
答案 3 :(得分:0)
以下也将诀窍
paste -s -d ',\n'
档案