如何在包含来自vim或命令行的某个字符串的任何行之前插入行?

时间:2017-07-11 21:54:27

标签: vim sed command-line grep

我有一个包含大量数据的文件,例如:

NULL

我想在包含something_id: someId something_version: someVersion something_log: someLog

something_log的每一行之前添加一行文字

我该怎么做?任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:6)

在Vim中,您可以使用:help :global:help :put

:g/something_log/put!='something_test: example1'

答案 1 :(得分:4)

您可以使用i的sed命令 insert /something_log/的第一部分是匹配的模式。 然后i告诉它在匹配行之前插入以下文本。

sed '/something_log/ i something_test: example1' <file>

Documentation for GNU sed

答案 2 :(得分:1)

使用GNU sed及其s命令:

sed 's/something_log/something_test: example1\n&/' file

输出:

something_id: someId
something_version: someVersion
something_test: example1
something_log: someLog
  

&:重复匹配的部分

答案 3 :(得分:1)

s中,您可以使用:%s/something_log/something_test\:example1\rsomething_log/g 命令:

\r

假设%s是新行字符。此行替换模式something_log的每一行(something_test\:example1\rsomething_log)中出现的新http://localhost:8080/demo/event/allEvents