我希望用sed或awk删除文件中的空行(换行,制表符和空格),但前提是这些空行在两个模式之间.
lorem lorem PATTERN1
\t
PATTERN2 lorem2 lorem2`
Run Code Online (Sandbox Code Playgroud)
我期望下面的结果是两个模式的两行连接.
lorem lorem PATTERN1PATTERN2 lorem2 lorem2
Run Code Online (Sandbox Code Playgroud)
这可能适合你(GNU sed):
sed -r '/PATTERN1/!b;:a;/PATTERN2/bb;$!{N;ba};:b;s/(PATTERN1.*)[ \t\n]+(.*PATTERN2)/\1\2/;tb' file
Run Code Online (Sandbox Code Playgroud)
/PATTERN1/!b 只需打印该行,除非它包含第一个模式:a;/PATTERN2/bb;$!{N;ba} 将后续行读入模式空间(PS),直到遇到第二个模式:b;s/(PATTERN1.*)[ \t\n]+(.*PATTERN2)/;tb 替换第一个和第二个模式之间的所有空格,制表符和换行符.| 归档时间: |
|
| 查看次数: |
1299 次 |
| 最近记录: |