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


11

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

(count (отличный класс сервера) = '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

1
Нет веских причин. Оба работают, но у первого слишком много цитат на мой вкус.
Деннис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.