目前我需要从文件中的一行中提取一个数字,在该数字上添加+1,使用Bash将其写入同一文件中的上一个数字。所以我的行看起来像这样:
<Server port="8080" ... >
我希望将其设为<Server port="8081" ... >
我知道使用sed - 命令我可以找到&#34; 8080&#34;并用一些东西替换它,我只是不知道如何实际获得8080并将其变成8081。 我怎么能这样做?
提前致谢。
答案 0 :(得分:0)
如果您需要添加,awk
是比sed
更好的工具。
考虑文件:
$ cat file
<Server port="8080" ... >
我们可以像这样增加端口号:
$ awk -F\" '/<Server/{$2++} 1' file
<Server port= 8081 ... >
这是为了处理您提供的示例输入而设计的。
-F\"
将字段分隔符设置为"
。将此作为字段分隔符,端口号是其自己的字段。
/<Server/
仅选择包含单词Server
。
{$2++}
对于那些选定的行,将第二个字段递增一个。
1
这是awk用于“打印所有行”的神秘缩写。