【发布时间】:2020-04-17 09:43:51
【问题描述】:
我希望以编程方式编辑 .txt 文件的换行符。所需的行为是文本行之间的任何单个换行符都将变为两个换行符。
编辑(@kaan 澄清):由一个换行符分隔的行应由两个换行符分隔。任何已经被两行或多行分隔的行都应该保持原样
编辑(上下文):我正在使用 .fountain 语法和一个名为 afterwriting 的 npm 模块,该模块将文本文件导出为 pdf 的脚本格式。使用该包打印为 pdf 时,仅由一个新行分隔的文本行没有正确间隔。所以我想自动将单个换行符转换为双行,因为我也不想在我正在转换的所有文件中添加两个新行
例如,输入示例如下所示:
File with text in it
A new line
Another new line
Line with three new lines above
One last new line
会变成
File with text in it
A new line
Another new line
Line with three new lines above
One last new line
任何关于如何在 bash 脚本中实现这一点的想法将不胜感激
【问题讨论】:
-
如果已经有 2 条新行,则改为 4 条?
-
看起来由 一个 分隔的两行换行符应该由 two 分隔。任何已经被两行(或更多)行分隔的行都应保持原样。
-
这不是一个定义明确的问题。您是否只是想用 3 个换行符替换恰好两个换行符的运行,或者您是否还想用 2 个空白行替换任何孤立的空白行(即只包含空格的行)?也就是说,你对待
^$和^\s+$有区别吗?准确地回答问题,答案就会变得相当明显。 -
@WilliamPursell 抱歉,我根本没有解释清楚。卡恩是正确的。我正在编辑 og 帖子以进行澄清和上下文
-
你试过什么?错误信息是什么?
标签: bash text sed scripting cat