Pokaż wyniki 1 do 10 z 18

Temat: grep

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie grep

    mam plik w formacie
    XXX(ZZZ) JJJJJJ
    XXX(ZZZ) JJJJJJ
    XXX(ZZZ) JJJJJJ

    potrzebuje wyszukac wszsytkie linie w ktorych drugi czlon nie jest 6 znakami a-zA-Z.

    jak to zrobic?

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    man egrep

    albo perlem to zalatwisz - prostota
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3

    Domyślnie

    albo perlem to zalatwisz - prostota
    ale ja sie o grepa pytam

    chce wyszukac wszystko co nie zawiera a-z, 0-9, @ i spacje


    cat ... | grep "[^a-z0-9@ ]*"

    dupa, dostaje wszystko i tak.

    ok powiedzcie mi czemu zamiast [a]{4} musze escapowac \{ ten nawias?
    dlaczego? Teraz uwazam ze tworca grepa byl kretynem, licze ze oczyscicie jego opinie.

    grep -E dziala normalnie. powiem jedno, *****. kogos pojebalo.
    Ostatnio edytowane przez Mad_Dud : 11-01-2009 - 21:49 Powód: trzy posty pod rzad...

  4. Domyślnie

    grep -E = egrep

  5. #5

    Domyślnie

    Kod:
    | grep -E "ERROR [^0-9a-zA-Z]{6}$"
    chce wyzucic z pliku wpisy typu XXXXXXX ERROR 178989
    nie dziala albo zORowac 0,5 i 7,, tyle ze to tez nie dziala, nawet z ().

    Cytat Napisał mlodszy Zobacz post
    grep -E = egrep
    egrep to inny program. gdzies pisali ze uzywac grep -E bo egrep przestazale czy cos.
    coz, jesli bzdura to dziekowac braku dokumentacji.
    Ostatnio edytowane przez Mad_Dud : 11-01-2009 - 21:49

  6. Domyślnie

    Jak chcesz sie czegos pozbyc to szybciej to sed'em zrobic. Grep jedynie co moze Ci wylistowac.

    Co do egrep to na wiki pisza o tym: http://en.wikipedia.org/wiki/Grep#Variations
    I w man: man egrep, w opisie

  7. Domyślnie

    Cytat Napisał rax666 Zobacz post
    cat ... | grep "[^a-z0-9@ ]*"
    Tego typu akcje ... ehh, Teeed swego czasu też mnie tym rozbawił. Nic dziwnego, że nie możesz sobie poradzić.
    Wracając do tematu, grep nie jest mocny w wyrażeniach regularnych. Chłopaki dobrze Ci doradzają, żeby skorzystać z innych narzędzi. Ja podsunę awk. Przyznaję, że nie jestem na tyle mocny, żeby samym grepem takie zadanie wykonać, więc proszę abyś umieścił rozwiązanie po zakończonych poszukiwaniach.

  8. #8

    Domyślnie

    Jeśli źle zrozumiałem Twój problem to mnie popraw:

    [root@fedora8 ~]# cat test.txt
    asd123@ ERROR 178989
    asd1234 ERROR 178989
    poprawny wpis
    asd123a ERROR 178989
    asd123c ERROR 178989
    asd1235 ERROR 178989
    poporwany wpis 2
    asd1238 ERROR 178989
    [root@fedora8 ~]# cat test.txt | grep -v -i "ERROR 178989"
    poprawny wpis
    poporwany wpis 2
    [root@fedora8 ~]#

  9. #9

    Domyślnie

    dobrze rozumiesz tylko 178989 to dowolne znaki z przedzialu a-zA-Z0-9

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj