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

如何在sed中结合行号范围与反向搜索处理CSV行?

单条sed命令给CSV指定行补充缺失列值

我有一个末尾列数据缺失的CSV文件,示例内容如下:

Data1,Data2,User
abc,def,foo
hij,klm,foo
nop,qrs
tuv,wxy

需求是给不含foo的行末尾添加bar,但要跳过第一行表头。之前用sed '/foo/!s/$/,bar/'会误给表头也加上,bar,尝试结合2,$行号范围时遇到问题,希望用单条sed命令完成。


可以用以下单条sed命令实现:

sed '2,$ {/foo/!s/$/,bar/}' input.csv

命令解释

  • 2,$ 限定命令仅作用于第2行到文件末尾的内容,直接跳过第一行表头
  • {} 将后续的匹配和替换命令包裹起来,确保它们只在前面指定的行范围内生效
  • /foo/!s/$/,bar/ 对范围内**不包含foo**的行,在末尾追加,bar

执行后得到的结果如下:

Data1,Data2,User
abc,def,foo
hij,klm,foo
nop,qrs,bar
tuv,wxy,bar

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 20:32:37