4

У меня есть несколько текстовых файлов (a.txt и b.txt), содержащих несколько URL-адресов, каждый в отдельной строке. Думайте об этих файлах как о черных списках. Я хочу очистить мой файл c.txt , очистив его от любой из строк в a.txt и b.txt . Мой подход состоит в том, чтобы переименовать c.txt в c_old.txt , а затем создать новый c.txt , выделив строки в a.txt и b.txt .

type c_old.txt | grep -f a.txt -v | grep -f b.txt -v > c.txt

Долгое время казалось, что моя система работает нормально. Однако в последнее время я потерял почти все, что было в c.txt , и новые добавления удаляются, несмотря на то, что они не встречаются в a.txt или b.txt . Понятия не имею почему.

PS Я на Windows 7, поэтому grep был установлен отдельно. Буду признателен, если есть решения, которые не требуют от меня установки дополнительных инструментов Linux.


Обновление: я обнаружил одну ошибку в моем пакетном файле. Я использовал ren c.txt c_old.txt не понимая, что ren отказывается перезаписывать целевой файл, если он существует. Таким образом, type c_old.txt | ... всегда использовал одни и те же данные. Это объясняет, почему новые добавления в c.txt были уничтожены, но не объясняет, почему пропало так много записей, которые были в c.txt .

1 ответ1

0

Ну, на самом деле у меня не так много данных, так как нет большого количества новых дополнений к a.txt и b.txt с тех пор, как я изначально задал вопрос, но с момента исправления проблемы с ren (заменил ее на move /Y), все работает гладко.

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

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