使用shell脚本替换行中的字符串

时间:2018-03-14 08:18:35

标签: shell

文件名:URL.java

内容:

public static String serverURL = "http://100.140.0.60:8080";
public static String serverURL1 = "http://100.140.0.60:8080";
public static String serverURL2 = "http://100.140.0.60:8080";
public static String serverURL3 = "http://100.140.0.60:8080";

在上面的文件中,

我需要使用shell脚本

动态地将ServerURL变量值更改为http://80.140.0.80:8080

注意:

不应根据行号动态更改值。

将来会有一些额外的行添加到此文件中。 所以我需要根据某些条件更改serverURL变量值。

2 个答案:

答案 0 :(得分:0)

您可以使用sed,例如:

sed -i "s/STRING_TO_REPLACE/STRING_TO_REPLACE_WITH/g" <file>

虽然你需要注意逃避斜线和点,所以在你的情况下

sed -i "s/http:\/\/100\.140\.0\.60:8080/http:\/\/80.140.0.80:8080\//g" URL.java

如果我理解你的动态&#34;你可以把它放在一个shell脚本中。正确的。

如果您想要更多灵活性,那么您应该查看awkperl脚本。

答案 1 :(得分:0)

您还可以使用类似的方法仅更改包含端口8080的行中的IP。例如,要调用上面显示的更改,您只需要:

sed 's/[0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}[.][0-9]\{1,3\}\(:8080\)/80.140.0.80\1/'

这将导致端口8080的地址的IP为:

public static String serverURL = http://80.140.0.80:8080