我正在寻找将文件A转换为文件B的解决方案,这需要将两个空白行合并为一个。
文件A:
// Comment 1
// Comment 2
// Comment 3
// Comment 4
// Comment 5
Run Code Online (Sandbox Code Playgroud)
文件B:
// Comment 1
// Comment 2
// Comment 3
// Comment 4
// Comment 5
Run Code Online (Sandbox Code Playgroud)
从这篇文章中,我知道如何删除空行,我想知道如何将两个连续的空行合并为一个。
PS:空白表示它可能为空,或者该行中可能有制表符或空格。
这可能对你有用(GNU sed):
sed '$!N;s/^\s*\n\s*$//;P;D' file
Run Code Online (Sandbox Code Playgroud)
这会将 2 个空行转换为 1 个。
如果要将多个空行替换为一个:
sed ':a;$!N;s/^\s*\n\s*$//;ta;P;D' file
Run Code Online (Sandbox Code Playgroud)
经过反思,一个更简单的解决方案是:
sed ':a;N;s/\n\s*$//;ta' file
Run Code Online (Sandbox Code Playgroud)
它将一个或多个空行压缩为一个空行。
更简单的解决方案使用范围条件:
sed '/\S/,/^\s*$/!d' file
Run Code Online (Sandbox Code Playgroud)
这将删除除非空行后面的空行之外的所有空行。
sed -r 's/^\s+$//' infile | cat -s > outfile
Run Code Online (Sandbox Code Playgroud)
sed删除空白行上的所有空格。将连续的空白行压缩为一个的-s选项cat。
| 归档时间: |
|
| 查看次数: |
1122 次 |
| 最近记录: |