Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 找出每行的第一个数字,做一些算术运算并替换它_Bash_Awk_Sed - Fatal编程技术网

Bash 找出每行的第一个数字,做一些算术运算并替换它

Bash 找出每行的第一个数字,做一些算术运算并替换它,bash,awk,sed,Bash,Awk,Sed,我有几百行这样的句子: 在表1中插入值(55661979,'Montag','06:00','19:00',1,'ON',NULL 我需要在第一个号码5566上再加一个号码,比如说50,每行加一个。 使用sed或awk获取第一个数字的方法有很多,但如何执行算术并替换数字? 有什么提示吗?您可以使用此awk: s='INSERT INTO table1 VALUES (5566, 1979, 'Montag', '06:00', '19:00', 1, 'ON', NULL' echo "$s"|

我有几百行这样的句子:
在表1中插入值(55661979,'Montag','06:00','19:00',1,'ON',NULL

我需要在第一个号码
5566
上再加一个号码,比如说
50
,每行加一个。
使用sed或awk获取第一个数字的方法有很多,但如何执行算术并替换数字?

有什么提示吗?

您可以使用此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

5566实际上不是该行上的第一个数字。(第一个数字是1,如
表1
中所示)您能提供一个更精确的描述,说明您需要更改的数字以及其他可能的行吗?