Поиск в текстовом редакторе вешает потому что большинство редакторов пытаются загрузить файл в память целиком.
Пользуйтесь утилитами поиска, типа grep или find (виндовый), которые читают текстовые файлы построчно, тогда проблем с памятью не будет. Но для поиска такие утилиты будут читать все 40 гб файла.
Поэтому есть мысль, что данные нужно перенести в базу, а в базе уже можно будет создать индексы для тех полей, по которым вы чаще всего выполняете поиск. Как оптимизировать базу - отдельная тема. Просто нужно учесть, что банальный перенос данных из файла в базу не решает проблему сам по себе, нужно понять что у вас за данные и как именно они должны лежать в базе наиболее оптимальным для вашего поиска образом.