如何使用sed修改特定列

时间:2014-03-04 23:35:26

标签: sed addition

如何通过sed修改特定的folumn,尤其是在该列数据中添加数字。

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

c1,c2,123,c4
c1,c2,345,c4

是否可以在每行的第3列中添加400? 并使结果如下所示:

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

3 个答案:

答案 0 :(得分:5)

awk更适合:

awk '{$3+=400}1' FS=, OFS=, file 

答案 1 :(得分:3)

awk -F, 'OFS="," {$3 += 400; print}' yourfile.csv

答案 2 :(得分:1)

这可能适合你(GNU sed):

sed 's/[^,]*/$((&+400))/3;s/.*/echo "&"/e' file

这使用了sed和Bash的组合。