「string1、string2、string3」などの文字列があります。
["string1","string2","string3"]に変換したいです。
使ってみよう
sed 's/\(,\)/"\1"/g'
しかし戻ってきました。string1","string2","string3
答え1
すでにカンマの周りに引用符を挿入できるので、始めと終わりに合計を追加するだけです["
。"]
sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
例:
$ echo string1,string2,string3 | sed 's/^/["/; s/\(,\)/"\1"/g; s/$/"]/'
["string1","string2","string3"]
答え2
純粋なbashソリューションは次のとおりです。
$ str='string1,string2,string3'
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]
この方法には外部ユーティリティやサブプロセスは必要ないため、高速です。
どのように動作しますか?
私たちはバッシュを使いますパターン交換すべてのコンマはシェルアクティブ文字","
なので、"
次のコマンドでエスケープする必要があります。
$ echo ${str//,/\",\"}
string1","string2","string3
最後のステップは、文字列の["
先頭と末尾に追加することです。"]
したがって:
$ echo "[\"${str//,/\",\"}\"]"
["string1","string2","string3"]