Как использовать awk-разделитель одинарных кавычек?

11

Я хотел бы использовать awk для извлечения информации из вывода SQL следующим образом:

(count (отличный класс сервера) = '2')

И нужно извлечь число, которое равно 2 в этом примере.

Я хотел бы сделать что-то вроде следующего, но не могу понять, как избежать одиночной кавычки:

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

Как я могу получить буквальную одинарную кавычку в качестве разделителя полей в awk?

WilliamKF
источник

Ответы:

14

Чтобы вставить символ одинарной кавычки в строку, заключенную в одинарные кавычки, завершите текущую строку, введите "'"или \'и начните строку заново.

В вашем примере это

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

или

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

Однако использование -Fпереключателя для указания разделителя полей приведет к более четкому коду:

awk -F\' '{print $2}'
Деннис
источник
Почему вы обновили стиль с -F"'"до -F\'?
WilliamKF
1
Нет веских причин. Оба работают, но у первого слишком много цитат на мой вкус.
Деннис