次のような数行のファイルがあります。
"key1":"val1","key2":"val2","key3":"val3","key4":"val4"
でvi
使用するエディタまたはsed
私は間のすべてのテキストを置き換えたい":"
と","
して","
、私はすべてのキーを維持し、すべての値を削除したい。すなわち。
行は次のようになります:
"key1","key2","key3","key4"
ではvi
エディタ私が使用しようとした:%s/":".*","/","/g
、と使用sed
私が使用sed 's/":"*","/","/'
代わりに、間のテキストを置き換えるので、それは最初の発生から、すべてのテキストを削除している":"
し、最後に出現する","
、つまり行がなってきています"key1","key4":"val4"
。
どのように私は、その後の出現の間でテキストを置き換えない":"
と、次の","
?
キーも値も含めることができないと仮定すると"
、このsedソリューションは機能します。
sed 's/\("[^"]*"\):"[^"]*"/\1/g'
説明:
s/
代替/\("[^"]*"\):"[^"]*"/
探し"stuff":"more stuff"
、他の二重引用符が存在しないと仮定した場合"
にstuff
等、次いで最初の部分(とキャプチャ\(
と\)
)を/\1/
最初の部分だけを保持します/g
続けます本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句