0

我有一个可以捕捉短语的 sed 脚本objID="x",其中 x 可以是任何正整数。

我想将它增加一个常数值,比如说整个文件中的 100。我怎样才能做到这一点?

sed 's/objID="\(\d\)"/objID="\1"/g

我应该改变什么?

4

2 回答 2

2

尝试这样做:

使用

$ echo 'objID="1"' |
    perl -pe 's/(objID=")(\d+)(")/sprintf "%s%s%s", $1, $2+1, $3/ge'
objID="2"

使用

$ echo 'objID="1"' | awk -F'"' '/objID=/{print $1 $2+1 $3}'
objID="2"
于 2013-02-22T13:58:53.543 回答
1

正如我评论的那样,awk、perl 会更轻松地完成这项工作,但是如果 sed 是必须的要求,请查看以下示例:

(需要Gnu Sed

kent$  echo 'objID="7"'|sed -r 's/(objID=")([0-9]+)(")/echo \1$((100+\2))\3/ge'
objID=107 
于 2013-02-22T14:04:12.680 回答