#something here
port 4444
#something here
port 4444所以我有像上面这样的文件,我会找到带有单词"port“的行,并将它旁边的数字(数字可以是任何数字-不一定固定在4444)递增1。
例如,结果文件的格式应为
#something here
port 4444
#something here
port 4445任何想法,我认为我们需要使用sed,但不确定是否增加它。
编辑:再次抱歉,我认为我得到了基于sed的答案,所以没有考虑位置。下面是确切的文件内容
$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为了不方便,我想更改端口号并再次递增it.Sorry。
发布于 2010-02-08 19:56:00
$ 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发布于 2010-02-08 19:52:01
port=444
((port+=1))
echo $port参考The Double-Parentheses Construct
发布于 2010-02-08 19:54:45
我会使用awk
awk '
BEGIN{p=-1}
{ if($2=="port"){if(p==-1){p=$3}else{p++};print $1,$2,p} else {print} }' filehttps://stackoverflow.com/questions/2221298
复制相似问题