2017-01-20 27 views
1

Мне нужно найти строку в текстовом файле, удалить строку, содержащую ее, и сохранить файл. Строка найдена (читается) с другого текстового файла, содержащего сотни разных строк, по одному в строке. Процесс состоит в том, чтобы перейти от первой к последней строке в файле.SED или другой редактор - удалить строки из файла на Windows

Любые (надеюсь, простые в использовании) текстовые редакторы (на ОС Windows) рекомендуется? Чтобы выполнить задачу.

Я не занимаюсь серьезным ежедневным редактированием. Поэтому я был бы так счастлив, если бы задача могла быть выполнена с помощью простого в использовании, но все же надежного редактора.

Благодаря кучу, Frank

ответ

0

На UNIX/Linux/Cygwin:

grep -v -f pattern_file unmodified_file > new_file

Удалить все строки, содержащие образцы в pattern_file от unmodified_file, чтобы написать new_file.

grep -v выводит строки, не соответствующие рисунку. -f читает паттерны из файла.

На окнах это кажется эквивалентно запуску в командной строке:

FINDSTR /V /G:pattern_file unmodified_file > new_file

Вот и все. Если у вас уже есть два исходных файла, это однострочный.

pattern_file будет пробельные и чувствительно к регистру, если не вникать в другие варианты, которые описаны с FINDSTR /?

+0

Привет, stevesliva, спасибо. Я попробую Windows один и вернусь, чтобы рассказать, как это получилось. – frank

+0

Еще раз, попробовал, как вам было предложено, и Yahoo! он разработал первый удар. Некоторая проверка, до сих пор не обнаружила каких-либо сбоев во вновь созданном «new_file». Я «знал», что должен быть способ сделать это, чтобы найти подходящего парня в правильном совете. Чистый и чистый. Большое спасибо stevesliva! – frank

+0

@frank Я упоминаю реализацию 'grep' в основном потому, что это канонически для тех из нас, кто ежедневно манипулирует текстом с кодом, но, конечно же, это точно соответствует команде DOS.Буду признателен, если вы примете ответ (зеленая галочка). Благодаря! – stevesliva

1

Вы можете попробовать Notepad ++, так как он имеет много плагинов, также большой алгоритм поиска. Я выполнил аналогичную задачу, когда мне пришлось делать много поиска/замены материала и использовать плагин, который я выкопал из Интернета, точно не могу запомнить имя (попробуйте google-ing, я думаю, что это replaacc для notepad ++ или что-то похожее).

+0

Здравствуйте BlueBrewBerry, спасибо за подсказку. – frank

0

Использование СЭД:

sed -n '/PATTERN/n;p' FILE > FILE.new # then copy FILE.new to FILE 

Сообщает СЭД не выводить ничего по умолчанию (-n), найти шаблон (/PATTERN/) и пропустить эту строку, если найдено (n), в противном случае вывести строку (;p). Если у вас есть GNU sed вы можете просто позвонить

sed -i -n '/PATTERN/n;p' FILE` 

, которая автоматически обновляет файл из-за (-i /--in-place).

+0

Привет, я собираюсь попробовать сначала stevesliva, поскольку он избегает установки версии Winders SED. Но, в любом случае, спасибо, кто знает. – frank