У меня есть 2 текстовых файла.Файл1 содержит около 1000 строк, а Файл2 - 20000 строк.Выдержка из File1 выглядит следующим образом:
/BBC Micro/Thrust
/Amiga/Alien Breed Special Edition '92
/Arcade-Vertical/amidar
/MAME (Advance)/mario
/Arcade-Vertical/mspacman
/Sharp X68000/Bubble Bobble (1989)(Dempa)
/BBC Micro/Chuckie Egg
Извлечение из File2 выглядит следующим образом:
005;005;Arcade-Vertical;;;;;;;;;;;;;;
Alien Breed Special Edition '92;Alien Breed Special Edition '92;Amiga;;1992;Team 17;Action / Shooter;;;;;;;;;;
Alien 8 (Japan);Alien 8 (Japan);msx;;1987;Nippon Dexter Co., Ltd.;Action;1;;;;;;;;;
amidar;amidar;Arcade-Vertical;;;;;;;;;;;;;;
Bubble Bobble (Japan);Bubble Bobble (Japan);msx2;;;;;;;;;;;;;;
Buffy the Vampire Slayer - Wrath of the Darkhul King (USA, Europe);Buffy the Vampire Slayer - Wrath of the Darkhul King (USA, Europe);Nintendo Game Boy Advance;;2003;THQ;Action;;;;;;;;;;
mario;mario;FBA;;;;;;;;;;;;;;
mspacman;mspacman;Arcade-Vertical;;;;;;;;;;;;;;
Thrust;Thrust;BBC Micro;;;;;;;;;;;;;;
Thunder Blade (1988)(U.S. Gold)[128K];Thunder Blade (1988)(U.S. Gold)[128K];ZX Spectrum;;;;;;;;;;;;;;
Thunder Mario v0.1 (SMB1 Hack);Thunder Mario v0.1 (SMB1 Hack);Nintendo NES Hacks 2;;;;;;;;;;;;;;
Thrust;Thrust;Vectrex;;;;;;;;;;;;;;
В File3 (выходной файл) с использованием grep, sed, awk или abash script, я бы хотел получить следующий вывод:
Thrust;Thrust;BBC Micro;;;;;;;;;;;;;;
Alien Breed Special Edition '92;Alien Breed Special Edition '92;Amiga;;1992;Team 17;Action / Shooter;;;;;;;;;;
amidar;amidar;Arcade-Vertical;;;;;;;;;;;;;;
mspacman;mspacman;Arcade-Vertical;;;;;;;;;;;;;;
Это похоже на предыдущий вопрос, который я задавал, но не то же самое.Я специально хочу избежать возможности Thrust; Thrust; Vectrex ;;;;;;;;;;;;;;записывается в файл 3.
Использование sudo awk -F \;'NR == FNR {a [$ 1] = $ 0; далее} $ 1 в {print a [$ 1]}', я обнаружил, что Thrust; Thrust; Vectrex ;;;;;;;;;;;;;;был записан в файле 3 вместо Thrust; Thrust; BBC Micro ;;;;;;;;;;;;;;(последний - вывод, который я ищу).
Точно так же, Марио; Марио; FBA ;;;;;;;;;;;;;;не появится в File3, потому что он не совпадает / MAME (Advance) / mario, так как «MAME (Advance)» не совпадает.Это хорошо.То же самое для Bubble Bobble (Япония), Bubble Bobble (Япония); msx2 ;;;;;;;;;;;;;;;;;;;который не соответствует ни «Sharp X68000», ни «Bubble Bobble (1989) (Dempa)».