Можно ли остановить Notepad++ от поиска внутри двоичных файлов?
Я случайно обнаружил, что функция "Поиск в файлах" в Notepad++ ищет файлы в архивах RAR. После выполнения нескольких запросов "найти и заменить" все файлы RAR, которые у меня были в рабочей папке, теперь повреждены.
Я действительно думаю, что поиск внутри двоичных файлов должен быть опциональной функцией, но сейчас я действительно хотел бы отказаться от нее. Кто-нибудь знает правильную настройку для этого?
2 ответа
Notepad++ не выполняет поиск и замену внутри архивных файлов. Ваши архивы были повреждены, потому что вы выполняли поиск и замену самих файлов RAR, а не файлов, содержащихся в них.
Предположим, вы хотите конвертировать все текстовые файлы в вашей папке с Mac в Unix. Для этого нужно заменить все CR (0x0D
) символы с НЧ (0x0A
). Предположим также, что ваша папка содержит следующий файл с именем "Apple.txt.gz":
1f 8b 08 08 9c c1 81 55 02 00 41 70 70 6c 65 2e
74 78 74 00 0b c9 c8 2c 56 28 2d 4e 4d 51 e0 2d
c9 57 48 4a 55 48 cc e3 75 2c 28 c8 49 55 88 8d
56 48 cb cc 49 d5 e3 05 2b 01 22 de e2 92 cc 9c
1c a0 02 05 0c 15 84 0d 01 00 d3 0c 65 8c 68 00
00 00
Это действительный архив gzip, содержащий небольшой текстовый файл "Apple.txt" с разрывами строк CR в стиле Mac. Обратите внимание, что он содержит 0d
в предпоследней строке.
Если вы откроете его в Notepad++, он будет выглядеть примерно так:
‹œÁU Apple.txt ÉÈ,V(-NMQà-ÉWHJUHÌãu,(ÈIUˆVHËÌIÕã+"Þâ’Ìœ „
ÓeŒh
Замена CR на LF и сохранение приведет к повреждению файла. Давай, попробуй.
Чтобы избежать этого будущего, вы должны указать фильтры в диалоговом окне "Найти в файлах". Например, если ваша папка содержит файлы.txt, .htm, .html, .rar и.avi, и вы хотите изменить только текстовые файлы и страницы HTML, введите *.txt *.htm *.html
в поле "Фильтры". Если это по какой-то причине нецелесообразно, вам нужно переместить файлы, которые не следует изменять, из папки, в которой начинается поиск в файлах.
Если вы хотите изменить файлы внутри архивов, вы должны сначала извлечь их и повторно сжать после изменения.
В Notepad++ нет функции "Исключить двоичные файлы". Вы должны указать в фильтре имен файлов, какие файлы вы хотите заменить, если вы не хотите, чтобы ВСЕ файлы были отмечены.
Полагаться на обнаружение двоичных файлов в любом случае не очень хорошая идея, поскольку текстовые файлы могут быть перепутаны как двоичные (и наоборот).