如何用SED移除|startStart|与|endEnd|间的换行并替换为空格?
用SED解决标识间换行替换问题
直接用这条SED命令就能搞定:
sed '/|startStart|/{:a;N;/|endEnd|/!ba;s/\n/ /g}' 你的输入文件名.txt
命令拆解:
/|startStart|/{...}:定位到包含|startStart|的行,执行后续操作:a:设置循环标记点aN:把下一行内容追加到当前处理的行后面(合并多行到一个模式空间)/|endEnd|/!ba:如果当前合并的内容里还没找到|endEnd|,就跳回标记a继续追加下一行s/\n/ /g:把模式空间里所有的换行符替换成空格
测试示例:
把你当前的输出内容存到schedule.txt,执行命令后,就能得到你要的期望输出——|startStart| Wed Nov 15, 5:50 |endEnd|这种格式,其他行的换行不受影响。
如果是BSD环境(比如macOS)的sed,可能需要把|转义成\|,命令改成:
sed '/\|startStart\|/{:a;N;/\|endEnd\|/!ba;s/\n/ /g}' schedule.txt
内容的提问来源于stack exchange,提问作者Adam James Dietrick
相关产品推荐
相关产品推荐

