Компьютерный форум 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=237689)

alek2012 02-07-2012 11:54 1944245

из строк текстового файла нужно вырезать определенные символы
 
Появилась задача.
Может кто то писал подобный скрипт, чтобы можно было построчно из текстового файла вырезать символы
до определенного названия текста.

Заранее благодарен.

RostVY 02-07-2012 12:29 1944260

юзал sed for Windows

alek2012 02-07-2012 12:51 1944271

спасибо, сегодня испытаю!

alek2012 03-07-2012 11:55 1944841

теперь нужно вырезать из строк все, кроме текста того что находится в квадратных скобках []

можно как то организовать?

Anonymоus 03-07-2012 13:35 1944922

alek2012, вариант c использованием grep for Windows
Код:

grep -Eo "\[[^\[]*\]" "test.txt">>"output.txt"

alek2012 03-07-2012 14:57 1944992

установил, не могу разобраться как пользоваться этой утилитой. Не подскажете пошагово?

Anonymоus 03-07-2012 16:24 1945064

alek2012, я вам команду для неё привел. Создаете текстовый файл, пишете туда следующее
Код:

@Echo Off
grep -Eo "\[[^\[]*\]" "test.txt">>"output.txt"
Pause

и меняете расширение на .bat или .cmd, затем запускаете.
"test.txt" - файл, откуда берется текст, а "output.txt" - файл, куда будет записано то, что подходит под указанное регулярное выражение.

alek2012 03-07-2012 16:55 1945093

Все понял! Спасибо. Нужно было сам скрипт кинуть в директорию bin)

И мне кидало ошибку. А я не мог понять что за...

И еще вопрос какой командой можно сделать так, чтобы каждое выражение в скобках начиналось с новой строки в файле output.txt ?

Anonymоus 03-07-2012 17:42 1945129

alek2012, они и так с новой строки начинаются, проблема в том, что grep подает свой вывод с переводом строки в unix-формате (LF), а вы я так понимаю, просматриваете текстовый файл в редакторе, который понимает только windows-like переводы строки (CR+LF)
Вариант решения c for:
Код:

@Echo Off
For /F "delims=" %%A In ('grep -Eo "\[[^\[]*\]" "test.txt"') Do (Echo %%A>>"out.txt")
Pause


alek2012 04-07-2012 09:32 1945508

Anonymоus супер! Все работает! Спасибо! С меня пиво!

alek2012 11-07-2012 16:54 1950050

Anonymоus подскажи пожалуйста еще как можно с помощью grep удалить повторяющиеся строки в файле.


Время: 04:44.

Время: 04:44.
© OSzone.net 2001-