[bash]sed - wyciagnanie ciagu cyfr z ciagu znakow

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
seav
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 30 wrz 2012, 21:49
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86_64

[bash]sed - wyciagnanie ciagu cyfr z ciagu znakow

Post autor: seav »

Cześć.
Problem jest następujący, mam przykładowy ciąg znaków:

Kod: Zaznacz cały

abc (120 122 950 948 324 330 390 384) (14 11 0) sDs(1 1 1)
Muszę uzyskać z niego zawartość pierwszego nawiasu :

Kod: Zaznacz cały

120 122 950 948 324 330 390 384
Bez żadnych innych znaków. I tak siedzę i się męczę....

Może ktoś na forum bawił się sed`em i wie jak to zrobić ?

Pozdrawiam
seav.
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Re: [bash]sed - wyciagnanie ciagu cyfr z ciagu znakow

Post autor: beluosus »

Łatwiej w perlu, bo można włączyć tryb non-greedy:

Kod: Zaznacz cały

echo 'abc (120 122 950 948 324 330 390 384) (14 11 0) sDs(1 1 1)' | perl -pe 's|.*?\(||; s|\).*||'
Najpierw usunięcie od początku do nawiasu, a później od nawiasu do końca. Albo jak wolisz jedną podmianą:

Kod: Zaznacz cały

's|.*?\(||; s|\).*||'
seav
Sędziwy Jeż
Sędziwy Jeż
Posty: 39
Rejestracja: 30 wrz 2012, 21:49
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: [bash]sed - wyciagnanie ciagu cyfr z ciagu znakow

Post autor: seav »

Dzięki serdeczne kolego, działa tak jak powinno. Niestety w perlu nic nigdy nie pisalem :).

Pozdrawiam
seav.
Awatar użytkownika
ethanak
Wygnańcy
Posty: 3054
Rejestracja: 04 gru 2007, 13:19
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: Bielsko-Biała
Kontakt:

Re: [bash]sed - wyciagnanie ciagu cyfr z ciagu znakow

Post autor: ethanak »

A bez regexpów i seda:

Kod: Zaznacz cały

echo 'abc (120 122 950 948 324 330 390 384) (14 11 0) sDs(1 1 1)' | tr ')' '(' | awk -F'(' '{print $2}'
Mały 1
Zakręcona Traszka
Zakręcona Traszka
Posty: 548
Rejestracja: 24 sty 2008, 15:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86_64

Re: [bash]sed - wyciagnanie ciagu cyfr z ciagu znakow

Post autor: Mały 1 »

Kod: Zaznacz cały

echo 'abc (120 122 950 948 324 330 390 384) (14 11 0) sDs(1 1 1)' | awk -F '[()]' '{print $2}'
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości