Выбор ответа Senior grep, sed, awk, find, xargs обновлено
NR и FNR в awk
Вопрос
Что делает awk 'NR == FNR { seen[$1]; next } $1 in seen' a.txt b.txt?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Печатает строки b.txt, чей ключ есть в a.txt. NR считает строки по всем файлам, FNR внутри текущего файла.
Варианты ответа
- Печатает строки
a.txt, ключей которых нет вb.txt - Склеивает файлы построчно, как
paste a.txt b.txt - Печатает строки
b.txt, чей ключ есть вa.txtправильный ответ - Печатает строки обоих файлов без повторов
Разбор
NR считает строки по всем файлам, FNR внутри текущего файла. Условие NR == FNR истинно только для первого файла: запоминаем ключи и next пропускает остальное. Для второго файла срабатывает $1 in seen, то есть это «JOIN» по ключу. Разность дало бы !($1 in seen), построчную склейку делает paste, уникальность sort -u.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.