2

Я случайно обнаружил, что функция "Поиск в файлах" в Notepad++ ищет файлы в архивах RAR. После выполнения нескольких запросов "найти и заменить" все файлы RAR, которые у меня были в рабочей папке, теперь повреждены.

Я действительно думаю, что поиск внутри двоичных файлов должен быть опциональной функцией, но сейчас я бы очень хотел отказаться от нее. Кто-нибудь знает правильную настройку для этого?

2 ответа2

3

Notepad++ не выполняет поиск и замену внутри архивных файлов. Ваши архивы были повреждены, потому что вы выполняли поиск и замену самих файлов RAR, а не файлов, содержащихся в них.

Предположим, вы хотите конвертировать все текстовые файлы в вашей папке с Mac в Unix. Для этого необходимо заменить все символы CR (0x0D) на LF (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 в Поле "Фильтры". Если это по какой-то причине нецелесообразно, вам нужно переместить файлы, которые не следует изменять, из папки, в которой начинается поиск в файлах.

Если вы хотите изменить файлы внутри архивов, вы должны сначала извлечь их и повторно сжать после изменения.

1

В Notepad++ нет функции «Исключить двоичные файлы». Вам нужно указать в фильтре имен файлов, какие файлы вы хотите заменить, если вы не хотите, чтобы ВСЕ файлы были отмечены.

Полагаться на обнаружение двоичных файлов в любом случае не очень хорошая идея, поскольку текстовые файлы могут быть перепутаны как двоичные (и наоборот).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .