如何使用sed修改特定列

如何使用sed修改特定列,sed,addition,Sed,Addition,如何通过sed修改特定的文件夹,尤其是向该列数据添加数字 我有一个csv文件,如下所示: c1,c2,123,c4 c1,c2,345,c4 是否可以将400添加到每行的第3列? 并使结果如下所示: c1,c2,523,c4 c1,c2,745,c4 我自己试着用 "sed -n 's/[0-9]\{3\}/&+400/ p' test.csv " 结果是 c1,c2,123+400,c4 c1,c2,345+400,c4 awk更适合这里: awk '{$3+=400}1' F

如何通过sed修改特定的文件夹,尤其是向该列数据添加数字

我有一个csv文件,如下所示:

c1,c2,123,c4
c1,c2,345,c4
是否可以将400添加到每行的第3列? 并使结果如下所示:

c1,c2,523,c4
c1,c2,745,c4
我自己试着用

"sed -n 's/[0-9]\{3\}/&+400/ p' test.csv "
结果是

c1,c2,123+400,c4
c1,c2,345+400,c4

awk
更适合这里:

awk '{$3+=400}1' FS=, OFS=, file 
这可能适用于您(GNU-sed):


这使用了sed和Bash的组合。

您可能希望使用
awk
来代替,指定
OFS=','
来设置分隔符,例如,
awkofs=','$1,$2,$3+400,$4
如果您确实想要
sed
,可能会有所帮助。
awk '{$3+=400}1' FS=, OFS=, file 
sed 's/[^,]*/$((&+400))/3;s/.*/echo "&"/e' file