単一引用符のawkセパレーターの使用方法


11

次のように、awkを使用してSQL出力から情報を引き出したいのですが。

(count(distinct serverclass)= '2')

そして、この例では2である数を抽出する必要があります。

次のようなことをしたいのですが、単一引用符をエスケープする方法がわかりません。

<sqlCommand> | awk 'BEGIN{FS="'"}{print $2}'

awkでフィールド区切り文字としてリテラルの単一引用符を取得するにはどうすればよいですか?

回答:


14

一重引用符で囲まれた文字列に一重引用符を挿入するには、現在の文字列を終了する"'"\'、文字列を書き込むか、文字列をもう一度開始します。

あなたの例では、それは

awk 'BEGIN{FS="'"'"'"}{print $2}'

または

awk 'BEGIN{FS="'\''"}{print $2}'

ただし、-Fスイッチを使用してフィールド区切り記号を指定すると、コードが読みやすくなります。

awk -F\' '{print $2}'

なぜスタイルをから-F"'"に更新したの-F\'ですか?
WilliamKF 2012

1
正当な理由はありません。どちらも機能しますが、最初のものは私の好みにはあまりにも多くの引用があります。
デニス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.