Войти

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


alek2012
02-07-2012, 11:54
Появилась задача.
Может кто то писал подобный скрипт, чтобы можно было построчно из текстового файла вырезать символы
до определенного названия текста.

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

RostVY
02-07-2012, 12:29
юзал sed for Windows (http://gnuwin32.sourceforge.net/packages/sed.htm)

alek2012
02-07-2012, 12:51
спасибо, сегодня испытаю!

alek2012
03-07-2012, 11:55
теперь нужно вырезать из строк все, кроме текста того что находится в квадратных скобках []

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

Anonymоus
03-07-2012, 13:35
alek2012, вариант c использованием grep for Windows (http://gnuwin32.sourceforge.net/packages/grep.htm)

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

alek2012
03-07-2012, 14:57
установил, не могу разобраться как пользоваться этой утилитой. Не подскажете пошагово?

Anonymоus
03-07-2012, 16:24
alek2012, я вам команду для неё привел. Создаете текстовый файл, пишете туда следующее

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

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

alek2012
03-07-2012, 16:55
Все понял! Спасибо. Нужно было сам скрипт кинуть в директорию bin)

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

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

Anonymоus
03-07-2012, 17:42
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
Anonymоus супер! Все работает! Спасибо! С меня пиво!

alek2012
11-07-2012, 16:54
Anonymоus подскажи пожалуйста еще как можно с помощью grep удалить повторяющиеся строки в файле.




© OSzone.net 2001-2012