You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sed无法检测字面量=与转义字符\r\n组合的问题求解

用sed/grep处理=\r\n拆分的行合并问题

为什么直接匹配=\r\n不行?

sed默认识别的是Unix风格换行(仅\n),而你文件里的是Windows式回车换行(\r\n),直接写=\r\n会因为sed对换行符的处理逻辑不匹配,导致无法识别二者的组合。

sed的处理方法

方法1:直接匹配行尾的=加回车

sed里可以用\x0D表示\r,直接匹配行尾的=\r并删除,下一行就会自动跟上完成合并:

sed -e 's/=\x0D$//' 你的输入文件名 > 输出文件名

方法2:先统一换行格式再处理

如果文件混合了不同换行格式,先把Windows换行转成Unix格式,再处理行尾的=即可:

# 先转换换行格式(需安装dos2unix工具,可通过brew/apt获取)
dos2unix 你的输入文件名
# 删除行尾的=,合并拆分的行
sed -e 's/=$//' 你的输入文件名 > 输出文件名

macOS/BSD sed的特殊处理

如果你用的是macOS自带的BSD sed,可先转换回车符再处理:

tr '\r' '\n' < 你的输入文件名 | sed 's/=$//' > 输出文件名

若要直接修改原文件,GNU sed可添加-i参数:

sed -i 's/=\x0D$//' 你的输入文件名

grep的匹配方法

要查找包含该拆分模式的行,需启用Perl兼容正则(PCRE),使用以下命令:

grep -P '=\r\n' 你的输入文件名

或用十六进制写法更稳妥:

grep -P '=\x0D\x0A' 你的输入文件名

内容的提问来源于stack exchange,提问作者dzher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:32:37