2017-07-25 100 views
3

是否有在兩個特定字符集之間插入新行的方法? 我想插入一個新行,每次}{發生在一個文本文件中,但是我想要在2個大括號之間插入此新行。 例如}\n{如何在2個特定字符之間插入新行

+0

優選內一個文件,但無論是在文件或STDOUT是好的。 – fep92

回答

6

您可以運行

的sed -e -i 'S /} {/} \ N {/ G' FILENAME.EXT

其中

  • sed是你的流編輯器程序
  • -i是選項edit file filename.ext in place
  • -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運行此而不是一個文件,省略-i以及輸出STDIN,例如東西后在管道命令的文件名:

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

它執行相同sed -e 's/}{/}\n{/g' repltest.txt

+0

你使用哪個操作系統?它在CentOS中爲我工作 – amphibient

3

使用sed

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

}{每個實例都將}\n{被替換。如果要替換文件中的文本,可以使用-i標誌。

相關問題