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?
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?
man egrep
albo perlem to zalatwisz - prostota
ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)
ale ja sie o grepa pytamalbo perlem to zalatwisz - prostota
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...
grep -E = egrep
chce wyzucic z pliku wpisy typu XXXXXXX ERROR 178989Kod:| grep -E "ERROR [^0-9a-zA-Z]{6}$"
nie dziala albo zORowac 0,5 i 7,, tyle ze to tez nie dziala, nawet z ().
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
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
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.
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 ~]#
dobrze rozumiesz tylko 178989 to dowolne znaki z przedzialu a-zA-Z0-9