awk
Если поля входного файла разделены одним или несколькими пробельными символами, то разделитель полей объявлять не нужно:
awk 'NR>1 && NF { league[$1][$4]++ } END { for ( team in league ) for ( results in league[team] ) print league[team][results],results,team }' teams.txt
Тот же код, отформатированный для экрана:
awk 'NR>1 && NF { league[$1][$4]++ }
END { for ( team in league )
for ( results in league[team] )
print league[team][results],results,team }' teams.txt
Здесь league[$1][$4]++
подсчитывает числа ($4
, четвертое поле )побед и поражений для каждой команды ($1
, первое поле )в лиге (входной файл ).
NR>1
означает, что awk
будет игнорировать заголовок (первой строки ).
Точно так же сокращениеNF
(дляNF>0
)означает, что awk
будет проверять только строки, содержащие хотя бы одно поле. Другими словами, NF
пропускает пустые строки.
Раздел NR>1 && NF
проверяет входной файл и создает массив. Когда это будет завершено, секция END
распечатает массив.
Если поля входного файла разделены запятыми -, добавьте BEGIN { FS="," ; OFS=" " }
, чтобы установить разделители полей ввода(FS
)и вывода(OFS
):
awk 'BEGIN { FS="," ; OFS=" " } NR>1 && NF { league[$1][$4]++ } END { for ( team in league ) for ( results in league[team] ) print league[team][results],results,team }' teams.csv
Тот же код, отформатированный для экрана:
awk 'BEGIN { FS="," ; OFS=" " }
NR>1 && NF { league[$1][$4]++ }
END { for ( team in league )
for ( results in league[team] )
print league[team][results],results,team }' teams.csv
Выход:
1 Win Knicks
1 Loss Knicks
1 Win Lakers
2 Loss Lakers
1 Win Celtics
Добавьте | sort -t " " -k 3 -k 2,2
в конец этого кода, чтобы отсортировать по командам, а затем по результатам для каждой команды.
Отсортированный вывод:
1 Win Celtics
1 Loss Knicks
1 Win Knicks
2 Loss Lakers
1 Win Lakers
Если вы установите Domains=~.
в своем /etc/systemd/resolved.conf
, systemd -разрешил будет использовать глобальную конфигурацию, а не любую конфигурацию для каждой -ссылки. В противном случае, как вы заметили, приоритет имеет конфигурация канала -.