如何用空格替换?

如何用空格替换?

原因已解释这里。我想用句点加换行符加空格替换句点和空格(例如.\t.\n)(即将示例字符串分别更改为.\n\t.\n\n)。

这可以在 bash/Linux 中有效地完成吗?

(我知道基本的 sed,但不足以处理这样的模式。)

答案1

sed

sed -E 's/\.([[:space:]]|$)/.\
\1/g'

使用 GNU sed

sed -E 's/\.(\s|$)/.\n\1/g'

答案2

您可以在 GNU 中使用分组sed

sed -E 's/\.(\s)/.\n\1/g' file

()当我们稍后想要使用匹配的正则表达式的一部分时,就会使用分组。

组将被排序,您可以通过其编号来引用它们,例如这里我们有\1

  • -E启用扩展正则表达式以避免转义()

相关内容