Форум TeamX
   Home   Members  
Pages: [1] |   Go Down
 
Author Topic: Вопросы по программе grep  (Read 1371 times)
Jordan
Пользователь
Posts: 416

476228895
Вопросы по программе grep
« on: 21 November 2008, 16:11:03 »

Приветствую.

С помощью этой программы ищу строки и вывожу их в файл вот так
"D:\8\UnxUtils\usr\local\wbin\grep.exe" "{" "ARADESH.i" >> 1.log

содержание ARADESH.i
display_msg(17) {17}{}{"1"};
display_msg(18) {18}{}{"2"};
display_msg(19) {19}{}{"3"};
display_msg(20) {20}{}{"4"};
display_msg(21) {21}{}{"5"};

содержание 1.log
display_msg(17) {17}{}{"1"};display_msg(18) {18}{}{"2"};display_msg(19) {19}{}{"3"};display_msg(20) {20}{}{"4"};display_msg(21) {21}{}{"5"};

А мне нужно так
display_msg(17) {17}{}{"1"};
display_msg(18) {18}{}{"2"};
display_msg(19) {19}{}{"3"};
display_msg(20) {20}{}{"4"};
display_msg(21) {21}{}{"5"};

И что бы в файл он выводил не всю строку а именно со знака которого я ищу {

Что бы было так
{17}{}{"1"};
{18}{}{"2"};
{19}{}{"3"};
{20}{}{"4"};
{21}{}{"5"};

С помощью этой программы можно так сделать? Если да объясните как.

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Mynah
Пользователь
Posts: 29


Re: Вопросы по программе grep
« Reply #1 on: 24 November 2008, 04:23:00 »

Quote
содержание 1.log
display_msg(17) {17}{}{"1"};display_msg(18) {18}{}{"2"};display_msg(19) {19}{}{"3"};display_msg(20) {20}{}{"4"};display_msg(21) {21}{}{"5"};
Тут всё просто. В windows перевод строки CRLF (#13#10), в *nix'ах - только LF(#10). В оригинале grep - никсовая програма. Т.е. переводы строк на самом деле в 1.log есть, но половина win-програм откажется их показывать.

Quote
И что бы в файл он выводил не всю строку а именно со знака которого я ищу {
Только средствами grep этого не добиться. Тут либо сторонние утилиты, либо скрипт bash'а, если, конечно, баш установлен.
Jordan
Пользователь
Posts: 416

476228895
Re: Вопросы по программе grep
« Reply #2 on: 24 November 2008, 15:43:02 »

Quote
Тут всё просто. В windows перевод строки CRLF (#13#10), в *nix'ах - только LF(#10). В оригинале grep - никсовая програма. Т.е. переводы строк на самом деле в 1.log есть, но половина win-програм откажется их показывать.

Все проблема решена. Спасибо Sokil'у за программу.


Quote
Только средствами grep этого не добиться. Тут либо сторонние утилиты, либо скрипт bash'а, если, конечно, баш установлен.

Я скачал UnxUtils под виндовс там есть D:\8\UnxUtils\bin\sh.exe это оно? Можно и в линуксе. У меня стоит ubuntu linux 8.10. Терминал это и есть bash?
« Last Edit: 24 November 2008, 19:46:11 by Jordan »

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Mynah
Пользователь
Posts: 29


Re: Вопросы по программе grep
« Reply #3 on: 25 November 2008, 08:57:06 »

Quote from: Jordan on 24 November 2008, 15:43:02
Я скачал UnxUtils под виндовс там есть D:\8\UnxUtils\bin\sh.exe это оно?
sh - другая оболочка, я её не умею, хоть они и похожи :)

Quote
Можно и в линуксе. У меня стоит ubuntu linux 8.10. Терминал это и есть bash?
Ну... Не совсем верная формулировка. Но баш там есть, да :) А вообще, если есть линукс, то там всё просто.

Code:
grep "{" 1.i | sed -e 's/.*\({[0-9].*\)/\1/'
Где 1.i  - это название файла. Разумеется можно в конце добавить вывод в другой файл. Стандартно. "> filename"
« Last Edit: 25 November 2008, 09:00:51 by Mynah »
Pages: [1] |   Go Up