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?

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}'

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.