在Unix系统上,我试图使用sed
或perl
在文件中添加新行,但似乎我缺少某些内容。
假设我的文件有多行文本,总是以{TNG:}}${1:F01
这样结尾。
我正在尝试找到一种在}$
之后添加新行的方式,因此{1
应该始终从新行开始。
我通过使用以下命令转义$
符号来尝试:
[perl -e '$/ = "\${"; while (<>) { s/\$}\{$/}\n{/; print; }'
但它不起作用。
任何想法都会受到赞赏。
使用perl:
$ cat input.txt
line 1 {TNG:}}${1:F01
line 2 {TNG:}}${1:F01
$ perl -pe 's/TNG:\}\}\$\K/\n/' input.txt
line 1 {TNG:}}$
{1:F01
line 2 {TNG:}}$
{1:F01
((请阅读-p
中的-n
和perlrun选项,而不要自己尝试一口气地使用它们)
尝试一下:
sed 's/{TNG:}}\$/&\n/' file > newfile
sed默认情况下将使用BRE,即{}
是文字字符。但是我们必须转义$
。
kent$ cat f
{TNG:}}${1:F01.
kent$ sed 's/{TNG:}}\$/&\n/' f
{TNG:}}$
{1:F01.