Я хочу напечатать языки программирования в файле1, который появляется в файле2, соответствующий ему номер строки в файле2 и полную строку файла 2.
file1 выглядит так:
Ruby
Visual Basic
Objective-C
C
R
C++
Basic
file2 выглядит так:
5. ab cde fg Java hij kl
2. ab PHP dddf llf
4. cde fg z o Objective-C oode
8. a12b cde JavaScript kdk
6. ab99r cde Visual Basic llso dkd
1. lkd dsk Ruby kksdk
3. Python dsdls
9. CSS dkdsk
4. Jdjdj C Jjd Kkd
12. Iiii Jjd R Hhd
5. Jjjff C++ jdjejd
7. Jfjfjdoo Uueye Basic Jje Tasdk
Я хотел бы получить этот вывод:
6|Ruby|1. lkd dsk Ruby kksdk
5|Visual Basic|6. ab99r cde Visual Basic llsodkd
3|Objective-C|4. cde fg z o Objective-C oode
9|C|4. Jdjdj C Jjd Kkd
10|R|12. Iiii Jjd R Hhd
11|C++|5. Jjjff C++ jdjejd
12|Basic|7. Jfjfjdoo Uueye Basic Jje Tasdk
где 6,5 и 3 - номер строки, в которой в файле 2. появляются "Ruby", "Visual Basic" и "Objective-C".
До сих пор я пытался использовать приведенный ниже код, но этот код работает, только если в файле 2 есть список точных совпадений при сравнении с файлом file1.
awk 'NR == FNR{a[$0];next} ($0 in a)' file1 file2
В этом случае языки программирования в файле2 содержат текст до и после, и я застрял в том, как получить желаемый результат.
Заранее спасибо за любую помощь.