解析文件并在每次出现后插入新行
Parse file and insert new line after each occurrence
在 Unix 系统上,我尝试使用 sed
或 perl
在文件中添加新行,但似乎我遗漏了什么。
假设我的文件有多行文本,总是这样结束{TNG:}}${1:F01
。
我正在尝试找到一种在 }$
之后添加新行的方法,这样 {1
应该总是从新行开始。
我试过用这个转义 $
符号:
perl -e '$/ = "${"; while (<>) { s/$}\{$/}\n{/; print; }'
但它不起作用。
任何想法将不胜感激。
试一试:
sed 's/{TNG:}}$/&\n/' file > newfile
sed默认使用BRE,即{}
是文字字符。但是我们必须逃避$
.
kent$ cat f
{TNG:}}${1:F01.
kent$ sed 's/{TNG:}}$/&\n/' f
{TNG:}}$
{1:F01.
使用 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
(阅读 perlrun 中的 -p
和 -n
选项并使用它们,而不是尝试自己在单行中执行它们)
在 Unix 系统上,我尝试使用 sed
或 perl
在文件中添加新行,但似乎我遗漏了什么。
假设我的文件有多行文本,总是这样结束{TNG:}}${1:F01
。
我正在尝试找到一种在 }$
之后添加新行的方法,这样 {1
应该总是从新行开始。
我试过用这个转义 $
符号:
perl -e '$/ = "${"; while (<>) { s/$}\{$/}\n{/; print; }'
但它不起作用。
任何想法将不胜感激。
试一试:
sed 's/{TNG:}}$/&\n/' file > newfile
sed默认使用BRE,即{}
是文字字符。但是我们必须逃避$
.
kent$ cat f
{TNG:}}${1:F01.
kent$ sed 's/{TNG:}}$/&\n/' f
{TNG:}}$
{1:F01.
使用 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
(阅读 perlrun 中的 -p
和 -n
选项并使用它们,而不是尝试自己在单行中执行它们)