Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 18

Temat: grep

  1. #1
    Zarejestrowany
    Aug 2009
    Postów
    408

    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
    Zarejestrowany
    Aug 2009
    Postów
    408

    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 "[^[email protected] ]*"

    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 - 20:49 Powód: trzy posty pod rzad...

  4. #4
    Zarejestrowany
    Jun 2006
    Postów
    141

    Domyślnie

    grep -E = egrep

  5. #5
    Zarejestrowany
    Aug 2009
    Postów
    408

    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 - 20:49

  6. #6
    Zarejestrowany
    Jun 2006
    Postów
    141

    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. #7
    Zarejestrowany
    Sep 2006
    Postów
    1,227

    Domyślnie

    Cytat Napisał rax666 Zobacz post
    cat ... | grep "[^[email protected] ]*"
    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
    Zarejestrowany
    Nov 2009
    Postów
    2

    Domyślnie

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

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

  9. #9
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie

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

  10. #10
    Zarejestrowany
    Nov 2009
    Postów
    2

    Domyślnie

    w takim razie polecenie poniżej powinno przynieść oczekiwany rezultat

    [[email protected] ~]# cat test.txt | grep -v "ERROR"
    poprawny wpis
    poporwany wpis 2
    [[email protected] ~]#

    a jeśli nie, to proszę o wklejenie fragmentu pliku z zaznaczeniem co powinno zostać pominięte przy wyświetlaniu a co powinno zostać pokazane.

Strona 1 z 2 12 OstatniOstatni

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