![如何用空格替换?](https://linux22.com/image/174009/%E5%A6%82%E4%BD%95%E7%94%A8%E7%A9%BA%E6%A0%BC%E6%9B%BF%E6%8D%A2%EF%BC%9F.png)
原因已解释这里。我想用句点加换行符加空格替换句点和空格(例如.\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
启用扩展正则表达式以避免转义(
和)