无论如何在2个特定字符集之间插入新行?
我希望每次O(NlogN)
出现在文本文件中时插入一个新行,但是我希望在2个大括号之间插入这一新行。
例如}{
答案 0 :(得分:7)
你可以运行
sed -i -e' 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而不是文件运行此操作,请在输出STDIN的内容后省略-i
和管道命令中的文件名,例如:
cat repltest.txt | sed -e 's/}{/}\n{/g'
与sed -e 's/}{/}\n{/g' repltest.txt
答案 1 :(得分:3)
使用sed
。
sed [-i] -e 's/}{/}\n{/g' file.txt
}{
的每个实例都将替换为}\n{
。如果要替换文件中的文本,可以使用-i
标志。