[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: pomoc z sed





Wojciech Giel pisze:
ed -e 's/^S.*>\ //g' plik > plik2

wzór wg ktorego sed wyszukuje sklada sie z ciagu znakow:   "^S.*\ "
^oznacza początek lini po którym następuje S(nie musi tu być. bez S tez działa) nastepnie mamy kropkę która zastepuje dowolny znak. Gwiazdka mówi że poprzedający ją znak może wystąpić zero bądź więcej razy. > (też można opuścić jest tutaj zbedny). backslash przed spacją powoduje że to puste miejsce jest rozpoznawane jako spacja a nie jakiś inny znak. tak w sumie mozna zredukować do ".*\ " jeżeli masz z całym pliku takie same zdania jak pokazałeś.
ed -e 's/.*\ //g' plik > plik2


Witaj Wojtku,

Siedziałem i rozkminiałem ale w końcu po tym co napisałeś i jak doczytałem co robi dokładnie "." wymyśliłem czemu mój pierwszy sposób nie działał..teraz nawet ośmielę się (wiem, że to wynika tylko z tego że nie podałem całego pliku który miałem do obróbki) że drugi sposób podany przez ciebie

ed -e 's/.*\ //g' plik > plik2

nie zadziałał by w moim przypadku tak jak potrzebowałem.
W obrabianym pliku było tak, że spacja jako znak rozdzielający dwie części podobnie wyglądających ścieżek, występowała dosłownie w kilku linijkach także po "->" i wtedy sed wyciął by mi więcej niż potrzebowałem... :)
dziękuję za pomoc i za zmuszenie do pomyślenia
Pozdrawiam
Maciej Kóska


Reply to: