web-dev-qa-db-ja.com

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

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

(count(distinct serverclass)= '2')

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

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

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

Awkのフィールドセパレータとしてリテラルの一重引用符を取得するにはどうすればよいですか?

11
WilliamKF

一重引用符で囲まれた文字列に一重引用符文字を挿入するには、現在の文字列を終了し、"'"または\'と書き込んで、文字列を再開します。

あなたの例では、それは

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

または

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

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

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