![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
Возникла задача обработки отчетов, несколько гигабайт файлов, обычный текст. Отчеты разного размера, от нескольких строк до десятка тысяч строк. Необходимо удалить из этих фалов все строки, содержащие определенную последовательность символов.
То есть, например, удалить все строки с текстовой последовательностью "авить" и из файлика с текстом
-----------
Не мысля гордый свет забавить,
Вниманье дружбы возлюбя,
Хотел бы я тебе представить
Залог достойнее тебя
-----------
и получить такой текст:
-----------
Вниманье дружбы возлюбя,
Залог достойнее тебя
-----------
В идеале хотелось бы найти какую-то консольную шуструю утилитку, которую можно натравить на эту кучу фалов в пакетном режиме, но, возможно есть и другие способы?
UPD:
В итоге остановился на sed, сделал батник со строкой
for %%A in (*.txt) do sed -e "/строка1/d" -e "/СТРОКА1/d" %%A > C:\NEW\%%A
Здесь строка1 и СТРОКА1 -- требуемые последовательности в разных регистрах. В принципе, в sed есть флаг I, но у меня он что-то не заработал, поэтому так.
Закидываю его в каталог с отчетами, запускаю, и все файлы с расширением txt копируются в каталог C:\NEW\. Не удалось выполнять для подкаталогов /R, ну это ладно, обойдусь.
Можно и из командной строки:
for %A in (*.txt) do sed -e "/строка1/d" -e "/СТРОКА1/d" %A > C:\NEW\%%A
Еще раз спасибо!
То есть, например, удалить все строки с текстовой последовательностью "авить" и из файлика с текстом
-----------
Не мысля гордый свет забавить,
Вниманье дружбы возлюбя,
Хотел бы я тебе представить
Залог достойнее тебя
-----------
и получить такой текст:
-----------
Вниманье дружбы возлюбя,
Залог достойнее тебя
-----------
В идеале хотелось бы найти какую-то консольную шуструю утилитку, которую можно натравить на эту кучу фалов в пакетном режиме, но, возможно есть и другие способы?
UPD:
В итоге остановился на sed, сделал батник со строкой
for %%A in (*.txt) do sed -e "/строка1/d" -e "/СТРОКА1/d" %%A > C:\NEW\%%A
Здесь строка1 и СТРОКА1 -- требуемые последовательности в разных регистрах. В принципе, в sed есть флаг I, но у меня он что-то не заработал, поэтому так.
Закидываю его в каталог с отчетами, запускаю, и все файлы с расширением txt копируются в каталог C:\NEW\. Не удалось выполнять для подкаталогов /R, ну это ладно, обойдусь.
Можно и из командной строки:
for %A in (*.txt) do sed -e "/строка1/d" -e "/СТРОКА1/d" %A > C:\NEW\%%A
Еще раз спасибо!