我知道用sed我可以打印
cat current.txt | sed 'N;s/\n/,/' > new.txt A B C D E F
至
A,B C,D E,F
我想要做的是:
A B C D E F
至
A,D B,E C,F
我想join1与4,2与5,3与6,依此类推。 这可能与sed? 任何想法如何实现?
谢谢。
尝试在列中打印:
pr -s, -t -2 current.txt
这比我所希望的要长,但是:
$ lc=$(( $(wc -l current.txt | sed 's/ .*//') / 2 )) $ paste <(head -"$lc" current.txt) <(tail -"$lc" current.txt) | column -t -o,
变量lc
存储current.txt
的行数除以2。 然后使用head
和tail
分别打印lc
和lc
最后一行(即文件的前半部分和后半部分); 然后使用paste
将两者放在一起,并将column
更改为逗号。
一个awk
版本
awk '{a[NR]=$0} NR>3 {print a[NR-3]","$0}' current.txt A,D B,E C,F
如果您喜欢其他时间间隔,此解决方案很容易调整。
只要将NR>3
和NR-3
更改为所需的数字即可。