我必须用一些其他值替换文件的特定行。例如:我有一个内容如下的文件:
request.timing=0/10 * * * * * ?
现在,我想用动态值替换10(或具体地说,该位置的任何值)。例如,如果我想用20替换它,则文件应更新为:
request.timing=0/20 * * * * * ?
有人能帮助我吗?我使用sed如下:
sed -i "s/request.timing=0\/??/request.timing=0\/$poller"
其中poller是我们传递的动态值。
答案 0 :(得分:1)
首先,您必须检查变量$poller
具有的字符,因为sed
可以将其中的任何字符解释为特殊字符。检查完毕后,在sed
内使用{strong> 的$poller
分隔符。我们假设我们可以使用/
:
sed -r 's/(request.timing=0\/)[0-9]{2}/\1'"$poller"'/g'
-r
选项激活扩展正则表达式,以便您可以使用[0-9]{2}
之类的内容,并使用( ... )
来捕获要在< em> replacement site。
答案 1 :(得分:0)
string cmdFilePath = Path.Combine(folder, Path.GetFileName(cmdFileName));
using (FileStream fStream = new FileStream(cmdFilePath, FileMode.Create))
答案 2 :(得分:0)
您遇到麻烦的原因是?
在正则表达式中无效。请改用.
。 ?
用于表示前一个字符可能存在0或1次。
sed -i "s/request.timing=0\/../request.timing=0\/$poller"
(这并不是说其他答案都不正确!)