我需要将第二行的内容上移至上一行,以使line2的数据与line1的数据并排,无论是逗号还是空格分隔的作品。
输入:
line1
line2
line3
line4
输出:
line1 line2
line3 line4
我一直在用简单的录音在vim中进行操作,但是当我告诉它做10万次时,vim似乎崩溃了……我在想sed可能是一个不错的选择,但不确定如何做我想做的事情还是有更好的选择?
每行只包含1个数值,我只有一百万行...
最佳答案
如果我理解正确,那么您有:
line1
line2
line3
line4
...
而你想要:
line1<SEP>line2
line3<SEP>line4
那么您可以使用
(g)awk
轻松地做到这一点:awk 'NR % 2 == 1 { o=$0 ; next } { print o "<sep>" $0 }' INPUTFILE
See it in action here。
更新:如果行数为奇数,则上面的代码将省略最后一行(如Martin Stettner所指出的),因此不会:
awk 'NR % 2 == 1 { o=$0 ; next } { print o "<sep>" $0 } END { if ( NR % 2 == 1 ) { print o } }' INPUTFILE
高温超导
关于vim - 如何使用vim,sed或其他类似工具将大文件(100万行)中的成对连续行连接起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545538/