将行首以点结尾的数字替换为“.IP 号码\n”

将行首以点结尾的数字替换为“.IP 号码\n”

我想替换行首的数字和句点:

1. The quick brown fox jumps over the lazy dog
12. The slow grey cat jumps over the lazy dog
234. The strong yellow lion jumps over the lazy dog

,因此.IP number\ntext上述输入将导致:

.IP 1
The quick brown fox jumps over the lazy dog
.IP 12
The slow grey cat jumps over the lazy dog
.IP 234
The strong yellow lion jumps over the lazy dog

我正在使用 FreeBSD12.1 sed。如果解决方案可以合理地移植到 Linux 机器上,我会更喜欢。

这是我尝试过的:

sed 's/^\([0-9]\)1\./\.IP \1\
/'

答案1

以下内容适用于 BSD sed。

sed -n 's/^\([0-9]*\.*\) \(.*\).*/.IP \1\n\2/p' filename`

答案2

我最终这样做了:

cat /tmp/f6 | sed -E 's/^([[:digit:]])\. /\.IP \1\
/' > /tmp/f7

相关内容