Войти

Показать полную графическую версию : [решено] Удалить строку, если она содержит текст


Alexander_88
14-12-2014, 09:05
Здравствуйте, подскажите как можно удалить все строки в тхт файле, которые содержат заданные тексты, и обработанный файл сохранить по заданному пути, не изменяя оригинал, к примеру:

у нас файл 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
findstr.exe /l /v /c:"title" /c:"m.jpg[/img]" <"C:\1.txt" >"C:\test\karabas.txt"

Foreigner
14-12-2014, 10:11
Alexander_88, C удалением пустых строк:

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

Alexander_88
14-12-2014, 10:22
Iska, Foreigner Спасибо, работает :)

Georgio
14-12-2014, 14:51
<"C:\1.txt" »


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




© OSzone.net 2001-2012