Linux 文件操作:shell脚本查找和增量

Linux 文件操作:shell脚本查找和增量,linux,shell,scripting,Linux,Shell,Scripting,所以我有上面这样的文件,我想找到带有单词“port”的行,并将它旁边的数字(这个数字可以是任何数字-不需要它固定在4444)增加1 例如,结果文件的格式应为 #something here port 4444 #something here port 4444 任何想法,我认为我们需要使用sed,但不确定是否要增加它 编辑: 再次抱歉,我以为我的答案是基于sed的,所以没有考虑位置。下面是确切的文件内容 #something here port 4444 #somethin

所以我有上面这样的文件,我想找到带有单词“port”的行,并将它旁边的数字(这个数字可以是任何数字-不需要它固定在4444)增加1

例如,结果文件的格式应为

 #something here
 port 4444

 #something here

 port 4444
任何想法,我认为我们需要使用sed,但不确定是否要增加它

编辑: 再次抱歉,我以为我的答案是基于sed的,所以没有考虑位置。下面是确切的文件内容

 #something here
 port 4444

 #something here

 port 4445
我想更改端口号并增加它。再次为给您带来的不便表示歉意

$cat file
data dev-1
type client
option type tcp
option host 99.160.131.163
option nodelay on
option port 6996
end

data dev-2
type client
option type tcp
option host 99.160.131.164
option nodelay on
option port 6996
end
参考文献


参考资料

我将使用
awk

port=444
((port+=1))
echo $port

我会使用
awk

port=444
((port+=1))
echo $port
Perl脚本将是:

$ awk 'f && $2=="port"{ $NF=num} $2=="port"{ num=$NF+1; f=1 } 1 ' file
data dev-1
type client
option type tcp
option host 99.160.131.163
option nodelay on
option port 6996
end

data dev-2
type client
option type tcp
option host 99.160.131.164
option nodelay on
option port 6997
end
Perl脚本将是:

$ awk 'f && $2=="port"{ $NF=num} $2=="port"{ num=$NF+1; f=1 } 1 ' file
data dev-1
type client
option type tcp
option host 99.160.131.163
option nodelay on
option port 6996
end

data dev-2
type client
option type tcp
option host 99.160.131.164
option nodelay on
option port 6997
end

对不起,伙计,我已经更改了标题,让我的问题更清楚。我需要在文件中编辑这些值。对不起,伙计,我已经更改了标题,以使我的问题更清楚。我需要在文件中编辑这些值。另外:
((端口++)
,但您的答案没有解决OP的问题。另外:
((端口++)
,但您的答案没有解决OP的问题。
$ cat aaa.txt
#something here
port 4444

#something here


port 4444
port 4444