我喜欢使用传统的ex
编辑器进行简单的命令行操作,重新排列文件中的文本。例如,对于文件中的简单移动线,我会使用类似
foo
bar
zoo
dude
在我会做dude
之后移动文本foo
printf '%s\n' '/dude' 'd' '/foo' '-' 'put' 'wq' | ex file
这意味着移动到 pattern dude
,将行放入 buffer 并将其粘贴到之后foo
并wq
关闭文件。
到目前为止这工作正常,但我想将我的自定义文本插入到文件中,例如
example
//commented
abc
def
//commented
如果模式匹配,我需要在上面添加另一个文本,abc
即在文件中,如果abc
存在,如果以开头的行//
存在,则在上面添加另一行//new text
,所以它应该看起来像
example
//new text
//commented
abc
def
我试着在下面做,itextESC
用来插入文本,但它不起作用。
printf '%s\n' '/abc' '-' '/\/\/' 'itextESC' 'wq' | ex file
我想让这项工作ed
或ex
探索更多关于这个工具的信息。如果ed/ex
可以用于像这样的琐碎任务,将不胜感激。
不要指望视觉命令在
ex
模式下工作。请使用实际的ex
命令来插入文本,a
[ppend] 和i
[nsert]。延伸阅读