[+] bash - usuni

Potrzebujesz pomocy z C, C++, perl, python, itp.
timo
Posty: 28
Rejestracja: 19 lipca 2010, 19:44

[+] bash - usunięcie z tekstu wszystkiego oprócz pasującego do wzorca

Post autor: timo »

Witam.
Za pomocą sed-a mogę usunąć fragment znacznika zawierający adres do następnej strony:

Kod: Zaznacz cały

sed 's/<a href=[^>]*class="next_page//'
A potrzebuję czegoś działającego dokładnie na odwrót, tzn. usuwający z długiego tekstu wszystko inne oprócz fragmentu pasującego do wzorca. Proszę o podpowiedź, jak to zrobić.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Hej
Ja mam taki skrypt, który operuje na pliku tekstowym (stworzonym przez tesseract-ocr z wycinka strony). W tym pliku szukam sobie ciągu, który zaczyna się od cyfry 3 i jest po nim 6 znaków. To polecenie:

Kod: Zaznacz cały

sed -n 's/.*\(3[A-Z0-9]\{6\}\).*/\1/p' plik_z_tekstem 
wyciąga mi taki właśnie fragment jak potrzeba. Ja sobie go później zapisuję do osobnego pliku. Wystarczy, że sobie dopasujesz wzorzec i powinno być ok.
timo
Posty: 28
Rejestracja: 19 lipca 2010, 19:44

Post autor: timo »

Dziękuję bardzo, właśnie o coś takiego mi chodziło.
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

A jak znaleźć w długim tekście ciąg znaków, który zaczyna się na

Kod: Zaznacz cały

<a href=jakisksrypt.php?key=xyz
a kończy na

Kod: Zaznacz cały

</a>
i nie wiadomo ile ma znaków? Męczę się z tym problemem już bardzo długo.
timo
Posty: 28
Rejestracja: 19 lipca 2010, 19:44

Post autor: timo »

Tak samo, tylko trochę inaczej ;) Jeżeli ciąg jest w jednej linii tego tekstu i między tym, co podałeś jako początek, a tym, co podałeś jako koniec ciągu nie występuje ani jeden znak mniejszości < to taki kod załatwia sprawę:

Kod: Zaznacz cały

sed -n 's/.*\(<a href=jakisksrypt.php?key=xyz[^<]*<[/]a>\).*/\1/p' plik_z_tekstem
ksysinek
Beginner
Posty: 155
Rejestracja: 14 czerwca 2007, 00:33
Lokalizacja: *Miasto know-how

Post autor: ksysinek »

Świetnie, działa ;)
ODPOWIEDZ