0

我想使用 sed 命令替换模式。我有一个包含以下数据的文件。

50%%R39%35%R43%-35%R4Z%10%RRN%1110%R0M%-950

现在我需要%RRN%<something>%%RRN%0%. 输出应该是这样的。

50%%R39%35%R43%-35%R4Z%10%RRN%0%R0M%-950

为此,我使用了以下命令

sed 's/%RRN%\(.*\)%/%RRN%0%/g' 

但我没有得到正确的输出。它如下所示。

50%R39%35%R43%-35%R4Z%10%RRN%0%-950

请帮助我

4

3 回答 3

0

如果您想尝试使用awk,您可以执行以下操作:

echo '50%%R39%35%R43%-35%R4Z%10%RRN%1110%R0M%-950' | awk '{sub(/%RRN%[^%]*%/,"%RRN%0%")}1'
50%%R39%35%R43%-35%R4Z%10%RRN%0%R0M%-950
于 2013-10-04T08:48:18.713 回答
0

更好的解决方案将[^%]\+代替.*

sed 's/%RRN%\([^%]\+\)%/%RRN%0%/g'

输出:

50%%R39%35%R43%-35%R4Z%10%RRN%0%R0M%-950
于 2013-10-04T06:33:23.803 回答
0
perl -pe '$a="0%";s/(%RRN%)[^%]*%/$1$a/g'
于 2013-10-04T09:19:49.970 回答