1

sed を使用して標準入力で正規表現を検索し、"pk": [0-9]+それを に置き換えるにはどうすればよい"pk": nullですか?

たとえば、に変換"pk": 123します"pk": null

私は次のようなことを試しました:

cat mydata.json | sed -e s/\"pk\"\:\s[0-9]+/\"pk\"\:\snull/g

しかし、これは効果がありません。正規表現を元に戻すと、壊れているように見えます[0-9]+が、これが単純で有効な正規表現であるため、理由はわかりません。私は何を間違っていますか?

4

2 に答える 2

0

猫は必要ありません。

sed 's/\(.*:\s*\)[0-9]\+/\1null/' file

正確に必要な場合pk:

sed 's/\("pk":\s*\)[0-9]\+/\1null/' file

例えば

kent$  echo '"pk": 123'|sed 's/\(.*:\s*\)[0-9]\+/\1null/'
"pk": null
于 2013-05-29T20:22:50.043 に答える
-1

これはうまくいくはずです:

sed -e 's/"pk": [0-9]\+/"pk": null/g' mydata.json
于 2013-05-29T20:21:36.610 に答える