Wie verwende ich ein awk-Trennzeichen in einfachen Anführungszeichen?

11

Ich möchte awk verwenden, um Informationen aus der SQL-Ausgabe wie folgt abzurufen:

(count (eindeutige Serverklasse) = '2')

Und müssen die Zahl extrahieren, die in diesem Beispiel 2 ist.

Ich möchte Folgendes tun, kann aber nicht herausfinden, wie ich dem einfachen Anführungszeichen entkommen kann:

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

Wie kann ich in awk ein wörtliches einfaches Anführungszeichen als Feldtrennzeichen erhalten?

WilliamKF
quelle

Antworten:

14

Um ein einfaches Anführungszeichen in eine Zeichenfolge in einfachen Anführungszeichen einzufügen, beenden Sie die aktuelle Zeichenfolge, schreiben Sie "'"oder \'und beginnen Sie die Zeichenfolge erneut.

In Ihrem Beispiel ist das so

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

oder

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

Wenn Sie jedoch den -FSchalter verwenden, um das Feldtrennzeichen anzugeben, erhalten Sie besser lesbaren Code:

awk -F\' '{print $2}'
Dennis
quelle
Warum haben Sie den Stil von -F"'"auf aktualisiert -F\'?
WilliamKF
1
Kein guter Grund. Beide funktionieren, aber der erste hat zu viele Zitate für meinen Geschmack.
Dennis