使用 sed 替换最后一个字符未指定的字符串?

使用 sed 替换最后一个字符未指定的字符串?

我想使用 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

相关内容