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 に答える