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

如何用sed匹配CSV文件指定模式并替换下一行内容?

解决CSV跨行替换的sed命令方案

要实现匹配包含XXX的行后,将下一行中的YYY替换为ZZZ,可以利用sed的跨行处理能力,具体命令如下:

sed '/XXX/{N;s/YYY/ZZZ/}' filename.csv

命令解释:

  • /XXX/:定位到包含XXX的行
  • {N;s/YYY/ZZZ/}:匹配到目标行后执行一组操作:
    • N:将下一行内容读取到当前模式空间,实现跨行处理
    • s/YYY/ZZZ/:在合并后的模式空间中替换YYY为ZZZ

示例验证:

假设你的CSV内容为:

XXX,YYY,ZZZ
AAA,BBB,CCC

执行上述命令后,输出结果为:

XXX,YYY,ZZZ
AAA,ZZZ,CCC

更精确的字段替换(可选)

如果要确保只替换下一行中第二个字段的YYY(避免误匹配其他位置的相同字符串),可以修改替换规则为针对字段分隔符的匹配:

sed '/XXX/{N;s/,YYY,/,ZZZ,/}' filename.csv

这种写法利用CSV的逗号分隔特性,精准定位第二个字段的YYY,适合严格的字段替换场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 17:12:34