【发布时间】:2018-08-18 23:51:35
【问题描述】:
如何在 bash 命令行中使用 Perl 和/或 Sed 删除新行,但避免使用特定的字符集?
我最接近的是:
perl -C -i -p -e 's/[^.:]\n//' ~/Desktop/bak2
上面的代码在避免删除以点或冒号结尾的行方面效果很好,但它失败了,因为当删除正确的新行时,它也会删除字符串的最后一个字符。我还需要将删除的 \n 替换为空格。
如果可能的话,由 Perl 和 Sed 提供这个解决方案会很棒。 我在 perl 或 sed 中搜索过类似的解决方案,但没有找到,如果确实存在,请见谅。
例子:
现有内容:
紫罗兰是蓝色的
布达有很好的教导。
编程很容易,因为:
存在 Stackoverflow,
社区总是提供帮助
很多。
期望的输出:
紫罗兰是蓝色的,布达有伟大的教义。
编程很容易,因为:
存在 Stackoverflow,社区总是提供很多帮助。
【问题讨论】:
-
请发布一些具有预期结果的示例数据。
-
你肯定接受的答案没有输出预期的结果。
-
是的,它起作用了,只是在替换部分添加了一个空格: perl -C -i -p -e 's/(?
标签: regex bash perl sed regex-negation