Як використовувати awk роздільник одиничної цитати?


11

Я хотів би використати awk, щоб витягнути інформацію з SQL виводу, наприклад:

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

І потрібно витягнути число, яке становить 2 у цьому прикладі.

Я хотів би зробити щось на кшталт наступного, але не можу зрозуміти, як уникнути єдиної цитати:

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

Як я можу отримати буквальну одиночну цитату як власний роздільник полів?

Відповіді:


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.