[bash] Wyciaganie frazy.

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

[bash] Wyciaganie frazy.

Post autor: COVERek »

Mam taka frazę:

+COPS: 0,0,"Plus",2

jak z tego wciągnąć nazwę Plus? a dokładniej nazwę która pojawi się między dwoma "" ?
Linux User #462372 || Ubuntu User #20118
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:

Odp: [bash] Wyciaganie frazy.

Post autor: beluosus »

Kod: Zaznacz cały

cut -f2 -d\"
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: [bash] Wyciaganie frazy.

Post autor: COVERek »

działa, dzięks. :)
Linux User #462372 || Ubuntu User #20118
Awatar użytkownika
COVERek
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 153
Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: [bash] Wyciaganie frazy.

Post autor: COVERek »

Mam kolejny problem. Mianowicie jesli mam fraze:

Kod: Zaznacz cały

Percent:34 Name:Plus LAC:33162 CID:58634
To jak wyciagnac tylko pierwszy ciag znakow po dwukropku?
I jesli przykladowo po dwukropku nie bedzie nic to zeby nic nie wyciagal?

Przykladowo zeby z takiej frazy tez poprawnie wyciagnal dane.

Kod: Zaznacz cały

Percent:34 Name:Plus Plus Plus LAC: CID:58634
Ogolnie potrzebuje kazdy ciag znakow z osobna.
Linux User #462372 || Ubuntu User #20118
rack

Odp: [bash] Wyciaganie frazy.

Post autor: rack »

Hej

Poniższy kod jest w ruby, jeżeli nie masz to
apt-get install ruby1.9 i potem

Jeżeli ma być wyciągnięty tylko pierwsza kolumna wyłacznie z wartością

Kod: Zaznacz cały

ruby -e "gets.split(' ').each{|entry| first,last = entry.split(':') if /Percent:[a-zA-Z0-9]+/ =~ entry; puts last if last }"
Jeżeli mają być wyciągnięte wszystkie wartości z wyłączeniem pustych ciągów znaków

Kod: Zaznacz cały

ruby -e "gets.split(' ').each{|entry| first,last = entry.split(':');puts last if last  }"
Używa się tego jak każdego innego programu wykorzystującego łącze STDIN I STDOUT

Kod: Zaznacz cały

echo "Percent:34 Name:Plus Plus Plus LAC: CID:58634" | ruby -e "gets ...
Jeżeli masz te linie w pliku to wtedy:

Kod: Zaznacz cały

ruby -pe "$_.split(' ') ... " < twoje_dane.txt
Enjoy ;))

Poniżej masz trochę innych przykładówwykorzystania ruby z linii polecen ;))

http://rubyhelp.org/indeks/article/ruby_command_line

pozdrawiam
S.Wojnowski
nUmer
Piegowaty Guziec
Piegowaty Guziec
Posty: 11
Rejestracja: 26 lut 2009, 19:46
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Kontakt:

Odp: [bash] Wyciaganie frazy.

Post autor: nUmer »

COVERek pisze:Mam kolejny problem. Mianowicie jesli mam fraze:

Kod: Zaznacz cały

Percent:34 Name:Plus LAC:33162 CID:58634
To jak wyciagnac tylko pierwszy ciag znakow po dwukropku?
I jesli przykladowo po dwukropku nie bedzie nic to zeby nic nie wyciagal?

Przykladowo zeby z takiej frazy tez poprawnie wyciagnal dane.

Kod: Zaznacz cały

Percent:34 Name:Plus Plus Plus LAC: CID:58634
Ogolnie potrzebuje kazdy ciag znakow z osobna.
nie zrozumiałem poprawnie - chcesz wyciągnąć wszystko po pierwszym dwukropku, czy tylko tekst między pierwszym a drugim dwukropkiem?
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:

Odp: [bash] Wyciaganie frazy.

Post autor: beluosus »

O ile dobrze zrozumiałem zagadnienie - myślę, że to powinno wystarczyć:

Kod: Zaznacz cały

awk -F ':| ' '{print $2}'
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

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