Сопоставление содержимого одного файла с другим и возвращение второго столбца - PullRequest
0 голосов
/ 25 марта 2019

Итак, у меня есть два TXT-файла file1.txt

s
j
z
z
e

и file2.txt

s h
f a
j e
k m
z l
d p
e o

и что я хочу сделать, это сопоставить первую букву файла1 с первой буквой файла 2 и вернуть второй столбец файла 2. так, например, исключенный вывод будет

h
e
l
l
o

Я пытаюсь использовать join file1.txt file2.txt, но он просто печатает весь второй файл. не уверен, как это исправить. Спасибо.

1 Ответ

3 голосов
/ 25 марта 2019

Это классика awk:

$ awk 'NR==FNR{a[$1]=$2;next}{print a[$1]}' file2 file1
h
e
l
l
o

Объяснено:

$ awk '
NR==FNR {       # processing file2
    a[$1]=$2    # hash records, first field as key, second is the value
    next
} {             # second file
    print a[$1] # output, change the record with related, stored one
}' file2 file1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...