找到每行中的第一个数字,做一些算术并替换它

时间:2015-01-23 22:30:26

标签: bash awk sed

我有数百条像这样的线:
INSERT INTO table1 VALUES (5566, 1979, 'Montag', '06:00', '19:00', 1, 'ON', NULL
我需要在第一个数字5566添加另一个数字,比如50,并在每行中添加。
有多种方法可以使用sed或awk获取第一个数字但是如何执行算术并替换数字?
任何提示?

1 个答案:

答案 0 :(得分:2)

你可以使用这个awk:

s='INSERT INTO table1 VALUES (5566, 1979, 'Montag', '06:00', '19:00', 1, 'ON', NULL'
echo "$s"|awk '{sub(/[^0-9]+/, "", $5); $5+=50; $5="(" $5 ","} 1'
INSERT INTO table1 VALUES (5616, 1979, Montag, 06:00, 19:00, 1, ON, NULL