如何搜索号码并将其替换为其他号码

时间:2017-04-24 05:20:20

标签: grep

我有一个带有以下行的文件server.xml -

Server port="8007" shutdown="SHUTDOWN"

我想搜索8007并将其替换为其他数字,例如:8010。 我该怎么办?

2 个答案:

答案 0 :(得分:0)

试试这个:

sed 's/8007/8010/g' yourfile

答案 1 :(得分:0)

要进行替换,您可以使用sed。我想新的“端口”存储在一个变量中。因此,两种解决方案都可以与GNU Sed一起使用:

$ a=$'Server port="8007" shutdown="SHUTDOWN"';echo "$a"
Server port="8007" shutdown="SHUTDOWN"

$ newport="8010"
$ sed -r "s/([0-9]+)/$newport/g" <<<"$a"
Server port="8010" shutdown="SHUTDOWN"

# Alternative:
$ sed -r 's/(port=")(.*)(" .*)/\1'"$newport"'\3/g' <<<"$a"

sed -r(或sed -E)启用扩展的正则表达式组 如果您需要就地应用替换(在文件上),您还需要在sed(-i)中使用sed -r -i.bak "...."开关