如何通过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
答案 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的组合。