Помогите расшифровать эту команду awk

Работает как часы Openbox 3.6.1 Ubuntu 18.04:

 $ setxkbmap -model pc105 -layout us,ua -variant qwerty -option grp:win_space_toggle
0
22.11.2020, 20:49
1 ответ

Программы Awk состоят из pattern {action}правил. {action}выполняется, если patternпринимает значение TRUE. TRUE в awk обозначается отличным от-нулевым значением. Следовательно, NR%2эквивалентноNR%2 != 0

Тот или иной из pattern {action}может быть опущен.

  • если patternотсутствует, то {action}применяется к каждой записи

  • если {action}отсутствует,то действие по умолчанию{print}

Шаблон 1идиоматически используется как шаблон «всегда истина», чтобы вызвать действие по умолчанию {print}для каждой записи.

Правила читаются слева направо. Оператор nextиспользуется для пропуска любых оставшихся правил.

Следовательно, awk ' NR%2 {printf "%s,", $0; next;}1 ' < linepairs.csvвыполняет

  • printf "%s,", $0если NR%2оценивает не -ноль, пропускается шаблон 1и его действие по умолчанию {print}

и

  • {print}иначе
3
18.03.2021, 22:47

Теги

Похожие вопросы