Sed:如何将匹配的行括起来?

时间:2018-09-12 22:41:07

标签: regex bash sed

我对sed有这个问题。

这就是我正在使用的:

sed -e "s/^00.*$/[&]\n/" file.txt

尝试匹配文件中此模式的出现:

00:04:33.00,00:04:37.47

并在开头和结尾处用方括号替换,并换行。

我想要这个:

[00:04:33.00,00:04:37.47]
<<need a new line here>>>

但是,我得到了:

]00:04:37.47,00:04:40.25
<<with a new line here>>>

1 个答案:

答案 0 :(得分:2)

由于输入文件具有DOS样式的\r\n行尾,因此您在行首得到了右括号。尝试先在行尾卸下回车架。

sed 's/\r$//; s/^00\..*/[&]\n/' file