以下はいくつかのサンプルコードです。
{"key_code":"a"},
{"key_code":"B"},
{"key_code":"c"},
{"key_code":"D"}
これが私がしたいことです:
{"key_code":"a"},
{"key_code":"b","modifiers":"left_shift"},
{"key_code":"c"},
{"key_code":"d","modifiers":"left_shift"}
私のIDEでは大文字と小文字を区別して検索し、"([A-Z])"
次に置き換えることができますが、"\L$1", "modifiers": "left_shift"
bashスクリプトでは使用できないようです。
\L
私はMac OS Xを使用しており、これが問題を引き起こしているようです。
私はいくつかのバージョンを試しました:
sed -i "" 's/"([A-Z])"/"\L$1","modifiers": "left_shift"/g' file
そして
sed -i "" "s/\"([A-Z])\"/\"\L$1\",\"modifiers\": \"left_shift\"/g" file
しかし幸運はありません。あちこち歩き回ろうと努力したけれど不明awk
そうです…
ベストアンサー1
Macosで見つかったFreeBSDは代替AFAIKをsed
サポートしていません\L
。いつでも以下を使用できますperl
。
perl -pi -e 's/"\p{Lu}"/\L$&,"modifiers":"left_shift"/g' file
-C
UTF-8でエンコードされた非ASCII大文字(たとえばÊ
、Ç
などΞ
)も処理するオプションが追加されました。