有没有办法在两个特定字符之间插入新行?
我想在文本文件中每次出现}{
时插入一个新行,但是我希望这个新行被插入在两个花括号之间。
例如:}\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
First }
{ Last
要在同一文件中实现更改,请使用-i
选项。
如果要针对标准输入而不是文件运行此命令,则省略-i
和管道命令中输出标准输入的文件名,例如:
cat repltest.txt | sed -e 's/}{/}\n{/g'
这与sed -e 's/}{/}\n{/g' repltest.txt
执行相同的操作。
\n
,这样更容易阅读和grep。谢谢! - Tony-Caffesed
命令。sed [-i] -e 's/}{/}\n{/g' file.txt
每个实例的}{
都将被替换为}\n{
。如果您想要替换文件中的文本,可以使用-i
标记。