Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удалить строку, если она содержит текст (http://forum.oszone.net/showthread.php?t=292561)

Alexander_88 14-12-2014 09:05 2443758

Удалить строку, если она содержит текст
 
Здравствуйте, подскажите как можно удалить все строки в тхт файле, которые содержат заданные тексты, и обработанный файл сохранить по заданному пути, не изменяя оригинал, к примеру:

у нас файл C:\1.txt

мы задали слова для поиска "title" "m.jpg[/img]" , и задали путь сохранения C:\test\karabas.txt

Все строки, содержащие 1ый либо 2ой вариант, должны удалиться, а также сама пустая строка. т.е если у нас было в 1.тхт

Код:

Ya poshol gulyat i svalilsya
Ya syel pon4ik title i podavilsya
Ya leg spat i ne m.jpg[/img] prosnulsya
Ya pobezhal i spotknulsya

После приминения БАТ, файл 1.тхт, должен остаться так как он есть, а также должен появиться файл C:\test\karabas.txt, с содержимым

Код:

Ya poshol gulyat i svalilsya
Ya pobezhal i spotknulsya

:unsure:

Iska 14-12-2014 10:04 2443778

Код:

findstr.exe /l /v /c:"title" /c:"m.jpg[/img]" <"C:\1.txt" >"C:\test\karabas.txt"

Foreigner 14-12-2014 10:11 2443780

Alexander_88, C удалением пустых строк:
Код:

findstr /v "^$ title m\.jpg\[\/img\]" "c:\1.txt" > "c:\test\karabas.txt"

Alexander_88 14-12-2014 10:22 2443783

Iska, Foreigner Спасибо, работает :)

Georgio 14-12-2014 14:51 2443859

Цитата:

Цитата Iska
Код:

<"C:\1.txt"
»


Если текст в "1.txt" не заканчивается символом "LF", то команда "FINDSTR" будет ожидать появления в этом файле новых строк, и пакетный файл завершит свою работу только тогда, когда в конце текста появится символ перевода на новую строку.


Время: 21:07.

Время: 21:07.
© OSzone.net 2001-