如何在两个特定字符之间插入一个新行

无论如何,要在两组特定的字符之间插入新的行? 我想插入一个新的行,每一次}{发生在一个文本文件中,但是我希望这个新行插入2大括号之间。 例如}\n{

你可以跑

sed -i -e's /} {/} \ n {/ g'filename.ext

哪里

  • sed是您的流编辑器程序
  • -i是编辑文件filename.ext的选项
  • -e表示正则表达式如下所示
  • s/}{/}\n{/g是正则表达式,意思是在每一行中找到{}的所有( g )实例,并用}代替\ n { \n是新行的正则表达式。 如果省略g ,它将只替换搜索模式的第一次出现,但仍然在每一行中。

要在对文件进行更改之前进行测试,请省略-i选项,并将结果输出到STDOUT中。

例:

创建文件:

 echo "First }{ Last" > repltest.txt 

 sed -e 's/}{/}\n{/g' repltest.txt 

将以下内容打印到STDOUT:

 First } { Last 

要在同一文件中进行更改,请使用-i选项。

要对STDIN而不是文件执行此操作,请在输出STDIN之后省略-i和管道命令中的文件名,例如:

 cat repltest.txt | sed -e 's/}{/}\n{/g' 

它和sed -e 's/}{/}\n{/g' repltest.txt

使用sed

 sed [-i] -e 's/}{/}\n{/g' file.txt 

}{每个实例将被替换为}\n{ 。 如果要替换文件中的文本,可以使用-i标志。