我有一个包含这样一列的文件:
45
88
90
77
12
29
我想将其更改为:
45 88
90 77
12 29
如何使用awk
?
答案 0 :(得分:3)
使用sed:
sed 'N;s/\n/ /' input
答案 1 :(得分:3)
$ awk '{printf "%s%s", $0, (NR%2 ? OFS : ORS)}' file
45 88
90 77
12 29
或者如果你理解awk你可能会更喜欢:
$ awk '{ORS=(NR%2?FS:RS)}1' file
45 88
90 77
12 29
答案 2 :(得分:2)
awk版
awk '{printf "%s ",$0;getline;print $0}' file
另一个版本
awk 'NR%2 {printf "%s ",$0;next}1'
答案 3 :(得分:2)
我通常只使用xargs
来做这件事:
$ xargs -n2 < file
45 88
90 77
12 29
我很好地缩放,因为您只需将值从2更改为所需的列数,而无需重写新脚本。
答案 4 :(得分:1)
另一个awk
版本:
awk 'NR%2 == 1 { old = $0 }
NR%2 == 0 { print old " " $0 }' file
记住old
中的奇数行;在偶数行上打印旧值和新值。
答案 5 :(得分:1)
或者只是简单地使用shell:
while read A; do read B; echo "$A $B"; done < file