![使用 sed 替换最后一个字符未指定的字符串?](https://linux22.com/image/67567/%E4%BD%BF%E7%94%A8%20sed%20%E6%9B%BF%E6%8D%A2%E6%9C%80%E5%90%8E%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E6%9C%AA%E6%8C%87%E5%AE%9A%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%EF%BC%9F.png)
我想使用 sed (或任何方法)来替换文件中的字符串。
该字符串的格式为“prv=x”,其中 x 是某个整数。 sed 中有没有一种方法可以指定要替换的整个字符串而不指定 x?
答案1
是的;仅替换每行中第一次出现的字符串:
sed -i 's/prv=[0-9][0-9]*/replacement_string/' inputfile
或者:
sed -i 's/prv=[0-9]\{1,\}*/replacement_string/' inputfile
要替换每行中多次出现的字符串:
sed -i 's/prv=[0-9][0-9]*/replacement_string/g' inputfile
或者:
sed -i 's/prv=[0-9]\{1,\}*/replacement_string/g' inputfile
使用 ERE 语法(如果您的版本支持sed
)仅替换每行中第一次出现的字符串:
sed -Ei 's/prv=[0-9]+/replacement_string/' inputfile
或者:
sed -Ei 's/prv=[0-9]{1,}/replacement_string/' inputfile
要替换每行中多次出现的字符串:
sed -Ei 's/prv=[0-9]+/replacement_string/g' inputfile
或者:
sed -Ei 's/prv=[0-9]{1,}/replacement_string/g' inputfile