sedを使用して開く角かっこの後に、SQLクエリに使用するテキストファイルの一重引用符を挿入します。

sedを使用して開く角かっこの後に、SQLクエリに使用するテキストファイルの一重引用符を挿入します。

どこUnixファイルの句文字列は次のとおりです。

where c1 in (a) and c2 in (a,b,c) and c3 in ()

必要な出力は次のとおりです。

where c1 in ('a') and c2 in ('a','b','c') and c3 in ('')

誰かがこれを終えることができれば良いでしょう。

ベストアンサー1

sed -r "s/,/','/g; s/\(([^)]+)\)/('\1')/g"

入力した入力がどのように変わるかを見てみましょう。

where c1 in (a) and c2 in (a,b,c) and c3 in ()

まず、カンマは引用符s/,/','/g()で囲みます。

where c1 in (a) and c2 in (a','b','c) and c3 in ()

次に、空でない角括弧()s/\(([^)]+)\)/('\1')/g内に引用符を追加します。

where c1 in ('a') and c2 in ('a','b','c') and c3 in ()

...欲しい結果です。

この正規表現は望ましくない方法で他の行に影響を与える可能性があるので注意してください。

おすすめ記事