如何用Java替换.sh中的一行?

如何用Java替换.sh中的一行?,java,Java,我有一个属性为value的.sh脚本。让它成为: 某些属性=某些值 该属性的值在脚本中使用,脚本在Java代码中启动。我想动态更改此属性的值。我尝试使用replaceFirst方法,但我不知道使用regexp正确替换它的某些_属性的实际值 如何编辑.sh文件,并将以某个\u属性=开头的单行替换为某个\u属性=我的\u值?顺便说一句,文件中有几个地方可以满足模式some_property=的要求,因此我需要更改第一个匹配项。您可以使用获得=和\n的位置,然后使用替换=和\n之间的字符串,例如 顺便

我有一个属性为value的.sh脚本。让它成为:

某些属性=某些值

该属性的值在脚本中使用,脚本在Java代码中启动。我想动态更改此属性的值。我尝试使用replaceFirst方法,但我不知道使用regexp正确替换它的某些_属性的实际值


如何编辑.sh文件,并将以某个\u属性=开头的单行替换为某个\u属性=我的\u值?顺便说一句,文件中有几个地方可以满足模式some_property=的要求,因此我需要更改第一个匹配项。

您可以使用获得=和\n的位置,然后使用替换=和\n之间的字符串,例如


顺便说一句,有些财产=.+并替换$1不合适

您可以使用获取=和\n的位置,然后使用替换=和\n之间的字符串,例如


顺便说一句,有些财产=.+并替换$1不合适

您应该可以使用正则表达式:

line.replaceFirst("some_property=.*$", "some_property=\"" + your_value + "\"");

您应该可以使用正则表达式:

line.replaceFirst("some_property=.*$", "some_property=\"" + your_value + "\"");

不清楚:您是希望Java代码编辑.sh文件,还是希望在.sh文件中调用Java并让它返回您的某个值?如果您不知道该名称,则需要了解该名称才能替换它。您想替换文件中的第一个属性还是第一个空属性?@PeterLawrey我知道该属性的名称,但不知道其实际值。事实上,我不需要知道它的值,因为我想用一个新的替换它。@Dragon在这种情况下,Gustav的建议应该有效。不清楚:您是希望Java代码编辑.sh文件,还是希望在.sh文件中调用Java并让它返回您的某个值?如果您不知道名称,你需要对它有所了解,才能替换它。您想替换文件中的第一个属性还是第一个空属性?@PeterLawrey我知道该属性的名称,但不知道其实际值。事实上,我不需要知道它的值,因为我想用一个新的替换它。@Dragon在这种情况下,Gustav的建议应该有效。它在开始时不起作用,但我改为:line.replaceFirstsome\u property=.*\n,some\u property=\+your\u value+\\n;它实现了我想要做的:谢谢。它一开始不起作用,但我改为:line.replaceFirstsome\u property=.*\n,some\u property=\+your\u value+\\n;它做到了我想做的:谢谢。