Strona 1 z 1
[+] bash - usunięcie z tekstu wszystkiego oprócz pasującego do wzorca
: 18 kwietnia 2011, 16:08
autor: timo
Witam.
Za pomocą sed-a mogę usunąć fragment znacznika zawierający adres do następnej strony:
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ć.
: 18 kwietnia 2011, 18:20
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.
: 18 kwietnia 2011, 21:23
autor: timo
Dziękuję bardzo, właśnie o coś takiego mi chodziło.
: 23 kwietnia 2011, 09:29
autor: ksysinek
A jak znaleźć w długim tekście ciąg znaków, który zaczyna się na
a kończy na
i nie wiadomo ile ma znaków? Męczę się z tym problemem już bardzo długo.
: 23 kwietnia 2011, 13:23
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
: 23 kwietnia 2011, 14:07
autor: ksysinek
Świetnie, działa