如何在vi中编辑文件内容?

如何在vi中编辑文件内容?

我有一个包含以下内容的文本文件(实际文件包含数千行)

abcd
xyas
sasss
jddks
asa
sasa
lkkkss
asasd

我想要以下格式的输出。

abcd xyas sasss jddks
asa sasa lkkkss asasd

我怎样才能做到这一点?

答案1

如果您只想将每 4 行连接成一行,可以使用递归宏来完成:

ggqaqqa4Jj@aq@a

解释:

  • gg转到文件开头
  • qaq清除寄存器中任何先前存储的宏a
  • qa开始在寄存器中录制宏a
  • 4J将 4 行合并为 1 行
  • j往下走一行
  • @a让宏在寄存器中a调用本身
  • q停止录音
  • @a调用寄存器中的宏a,它将继续处理文件直到完成。

Perl 中的替代方案

perl -ni -e 'chomp;print $_, $.%4? " ":"\n"' your_file

参考

相关内容