Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个可以捕捉短语的 sed 脚本objID="x",其中 x 可以是任何正整数。
objID="x"
我想将它增加一个常数值,比如说整个文件中的 100。我怎样才能做到这一点?
sed 's/objID="\(\d\)"/objID="\1"/g
我应该改变什么?
尝试这样做:
使用perl:
$ echo 'objID="1"' | perl -pe 's/(objID=")(\d+)(")/sprintf "%s%s%s", $1, $2+1, $3/ge' objID="2"
使用awk:
$ echo 'objID="1"' | awk -F'"' '/objID=/{print $1 $2+1 $3}' objID="2"
正如我评论的那样,awk、perl 会更轻松地完成这项工作,但是如果 sed 是必须的要求,请查看以下示例:
(需要Gnu Sed)
kent$ echo 'objID="7"'|sed -r 's/(objID=")([0-9]+)(")/echo \1$((100+\2))\3/ge' objID=107