在linux vi模式的每一行之后需要特殊字符

时间:2017-03-23 08:34:20

标签: linux vi

我有一个包含很多行的文本文件。我需要为每一行分隔一个分隔符。

例如..

asdfgh

Hjkll

Etyjik

Yuiilpm

输出应该是这样的..

asdfgh

+++++++

Hjkll

+++++++

Etyjik

+++++++

Yuiilpm

+++++++

这将是任何特殊的角色......

提前致谢。

3 个答案:

答案 0 :(得分:0)

试试这个awk one liner -

awk '{ print; print "+++++++" }' file

答案 1 :(得分:0)

awk '{print}NR%2==0{print "+++++++\n"}sub(/Yuiilpm/,"\n+++++++")' file
asdfgh

+++++++

Hjkll

+++++++

Etyjik

+++++++

Yuiilpm

+++++++

答案 2 :(得分:0)

如果你真的想要一个vi / vim的解决方案,你可以这样做:

:global /./ execute "normal! A\<Enter>\<Enter>+++++++"

阐释:

  • :global - 针对匹配模式的所有行运行命令
  • /./ - 匹配任何单个字符的模式(与空行不匹配)
  • execute ... - 执行命令
  • normal! - 运行以下内容,就好像它们是在正常模式下键入而没有重新映射键一样
  • A\<Enter>\<Enter>+++++++ - 添加两个新行,后跟特殊字符串

这可以缩短为:

:g/./exe "norm! A\<cr>\<cr>+++++++"