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
その中で何を変えるべきですか?
これをやってみてください:
パールを使用:
$ 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