我需要将每行第二行的内容移动到上面的行,以便line2的数据与line1一起,逗号或空格分隔的作品.
输入:
line1 line2 line3 line4
输出:
line1 line2 line3 line4
我一直在使用vim进行简单的录制,但是vim似乎崩溃了,当我告诉它做这个10万次…我在想,也许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
更新:如果行数为奇数,则上述将省略最后一行(正如Martin Stettner指出的),因此不会:
awk 'NR % 2 == 1 { o=$0 ; next } { print o "<sep>" $0 } END { if ( NR % 2 == 1 ) { print o } }' INPUTFILE
HTH
原文地址:https://www.jb51.cc/vim/383972.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。