| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Поиск значения в текстовой базе |
| Автор: Podkovka 15.11.2011, 09:54 | ||||
| Прошу помощи в реализации куска кода. Имеем текстовый файл TheTVDB.txt вида: name_show id_show
Имеем входную переменную $release_name вида Call.Me.Fitz.S02E07.720p.HDTV.x264-2HD Необходимо сделать последовательный (т.к. возможно двойное совпадение, например, Antiques.Roadshow.UK и Antiques.Roadshow) перебор в текстовом файле и при совпадении присвоить переменной $ID_Show значение после name_show, в противном случае $ID_Show=0. Как мне кажется, нужно брать данные из TheTVDB.txt и сравнивать с $release_name, т.к. ключ в TheTVDB.txt короче значения $release_name (Call.Me.Fitz - Call.Me.Fitz.S02E07.720p.HDTV.x264-2HD). Вид файла TheTVDB.txt можно изменить, если не удобен в обработке, т.к. создается вручную. На много меня не хватило
|
| Автор: arto 15.11.2011, 11:32 |
| # perl -aF"\\s+" -lne 'BEGIN{$id=shift}$id=~m#^\Q$F[0]\E#&&print$F[1]' Call.Me.Fitz.S02E07.720p.HDTV.x264-2HD file 191101 # |
| Автор: Podkovka 15.11.2011, 12:39 |
| @arto Спасибо, великолепное решение. Но я новичок в perl и для меня one-liner решение как дремучий лес Если Вас не затруднит, прошу показать пример в "классическом" виде. |
| Автор: dixoNICH 15.11.2011, 12:50 | ||
|
| Автор: Podkovka 15.11.2011, 16:19 |
| Спасибо |