Polecenie cut i znak cudzysłowia jako delimiter

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
zaytzev
Piegowaty Guziec
Piegowaty Guziec
Posty: 23
Rejestracja: 13 paź 2007, 15:10
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Polecenie cut i znak cudzysłowia jako delimiter

Post autor: zaytzev »

Witam.

Natknąłem się na pewien problem, kiedy chciałem sparsować na szybko dokument html i wyciągnąć z niego zestaw linków dla jdownloadera. Wyciąłem zbędne linie grepem. Problemem pojawił się kiedy chciałem sparsować interesujące mnie wiersze poleceniem cut. Przykład linijki:

Kod: Zaznacz cały

49: [ <a href="http://www.xxxxxxx.xxxx/xxxxxxxxx.php?http://xxxxxxxx.com/?d=XXXXXX" target="_blank">Download</a> ]
Chciałem to elegancko sparsować używając delimiterów. W pierwszym kroku:

Kod: Zaznacz cały

cat links_raw | cut -d=" -f2 > links_less_raw
Co oczywiście jest niewykonalne bo powłoka gubi się na tym cudzysłowiu. Z problemem ostatecznie poradziłem sobie licząc znaki (na szczęście była zachowana stała szerokość) i korzystając z parametru -c zamiast -d.

Ale na przyszłość gdybym nie miał takiego szczęścia to czy ktoś wie jak zmusić polecenie cut (albo inne) żeby przyjęło cudzysłów jako wartość parametru?

Pozdrawiam
Jarosław Jaryszew
Phenom 9850, 4GB @ 1066MHz, Gigabyte MA790X-DS4, Gainward Radeon HD4870
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: Polecenie cut i znak cudzysłowia jako delimiter

Post autor: beluosus »

Kod: Zaznacz cały

cut -d"\"" -f2 links_raw > links_less_raw
Od razu usunąłem nadmiarowy pipe w postaci cat. ;)

PS W sumie to w tym przypadku wystarczy -d\"
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
zaytzev
Piegowaty Guziec
Piegowaty Guziec
Posty: 23
Rejestracja: 13 paź 2007, 15:10
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Polecenie cut i znak cudzysłowia jako delimiter

Post autor: zaytzev »

Niepotrzebnie tym "=" namieszałem, bo oczywiście testowałem znak maskujący. :) Dlatego nie lubię stron w man bez sekcji example. :wall: beluosus, dzięki za pomoc.
Phenom 9850, 4GB @ 1066MHz, Gigabyte MA790X-DS4, Gainward Radeon HD4870
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