如何在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
相关产品推荐
相关产品推荐

