如何使用sed替换文件中的多位数?

时间:2018-02-13 11:21:15

标签: shell sed

我想替换一个多位数的文件中的数字(从1位到3位)。

server.properties

###
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=61
##max-players can be 0 up to 100##
network-compression-threshold=256
resource-pack-sha1=
###

目前已尝试

sed -i -e 's/max-players=[^0-9]/max-players=40/g' /home/TIXB9HQFV0/server.properties

但是没有用。我知道可以替换例如10使用

sed -i -e 's/max-players=[0-9][0-9]/max-players=40/g' /home/TIXB9HQFV0/server.properties

重点是数字的数量不同。 有任何想法让这个工作吗?

预期输出

###
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=40
network-compression-threshold=256
resource-pack-sha1=
###

1 个答案:

答案 0 :(得分:0)

简单sed可以帮助你:

sed -E 's/max-players=[0-9]+/max-players=40/g'   Input_file

输出如下:

###
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=40
##max-players can be 0 up to 100##
network-compression-threshold=256
resource-pack-sha1=
###

根据OP,如果你需要在Input_file中进行更改,那么在上面给出的命令中使用sed -i命令。