相关疑难解决方法(0)

必须有更好的方法来仅替换单个换行符吗?

我习惯于每句话写一行,因为我通常将内容编译为 LaTeX,或者以其他格式编写,其中换行符会被忽略。我使用一个空行来表示一个新段落的开始。

现在,我有一个以这种风格编写的文件,我只想将其作为纯文本发送。我想删除所有单换行符,但保持双换行符完好无损。这就是我所做的:

sed 's/^$/NEWLINE/' file.txt | awk '{printf "%s ",$0}' | sed 's/NEWLINE/\n\n/g' > linebreakfile.txt
Run Code Online (Sandbox Code Playgroud)

这将用我确信不会出现在文件中的一些文本替换空行:NEWLINE然后它摆脱了所有换行符awk(我在某个网站上发现了这个技巧),然后NEWLINE用必要的两个换行符替换了s。

这似乎是做一件非常简单的事情的冗长方法。有没有更简单的方法?此外,如果有一种方法可以用单个空格替换多个空格(有时出于某种原因会出现),那也很好。

我使用 emacs,所以如果有一些 emacs 特定的技巧是好的,但我宁愿看到一个纯粹的sed或纯粹的awk版本。

sed awk text-processing regular-expression

34
推荐指数
6
解决办法
1万
查看次数

标签 统计

awk ×1

regular-expression ×1

sed ×1

text-processing ×1