grep + wyrażenie regularne

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
fileth
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 09 gru 2011, 15:13
Płeć: Mężczyzna
Kontakt:

grep + wyrażenie regularne

Post autor: fileth »

witam
jak grepem wyciądnąć wyrazy wyrażeniem regularny ... ?
wyszukuje - za pomocą wyrażenia regularnego ([#!]\w+[#!]) interesującą mnie grupę wyrazów w plik.txt ...
chciał bym je skopiować do innego pliku *.txt
sprawdzalem w notepad++ wyrazenie regularne dziala - tzn podswietla mi wszystkie wyrazy ale nie moge ich skopiowac ...
dlatego licze ze grepem jest to mozliwe
_________________________________
fileth.pl
http://fileth.pl
Awatar użytkownika
Czeslavus
Wytworny Kaczor
Wytworny Kaczor
Posty: 295
Rejestracja: 25 maja 2011, 09:41
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Lokalizacja: 3Miasto

Re: grep + wyrażenie regularne

Post autor: Czeslavus »

Kod: Zaznacz cały

twoje_polecenie > plik.txt
i zapisze w katalogu w którym jesteś
------------------------------------------
Pozdrawiam
Czeslavus
charzu
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 17 lip 2015, 17:59
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: grep + wyrażenie regularne

Post autor: charzu »

Myślę, że chodziło raczej o:

Kod: Zaznacz cały

grep -E "[#!]\w+[#!]" plikWejsciowy> plik.txt 
Awatar użytkownika
enedil
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1352
Rejestracja: 08 wrz 2012, 16:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: i3
Architektura: x86_64
Kontakt:

Re: grep + wyrażenie regularne

Post autor: enedil »

Tutaj raczej bardziej przyda się gawk (GNU Awk):
http://stackoverflow.com/questions/5536 ... -from-file

Chociaż takie rozwiązanie w Ruby działa ładnie (mój skrypt):
https://gist.github.com/enedil/7126030353a4ba31c428
Musisz zainstalować do tego Ruby

Kod: Zaznacz cały

sudo apt-get install ruby
Dobrze jest, psiakrew, a kto powie, że nie, to go w mordę!

~moderatorzy
fileth
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 09 gru 2011, 15:13
Płeć: Mężczyzna
Kontakt:

Re: grep + wyrażenie regularne

Post autor: fileth »

wydaje się że składnia ...
grep -E "[#!]\w+[#!]" plikWejsciowy> plik.txt
jest poprawna.
Ale komenda nie wykonuje tego wyrażenia ... wyrażenie mówi żeby wyfiltrować wszystkie wyrazy między znakami #! #!
A w praktyce przenosi cała zawartość plikWejsciowy do plik.txt
______________________________
http://fileth.pl
Awatar użytkownika
JSokol
Sędziwy Jeż
Sędziwy Jeż
Posty: 67
Rejestracja: 18 mar 2010, 10:57
Płeć: Mężczyzna
Wersja Ubuntu: 14.04
Środowisko graficzne: Unity
Architektura: x86_64
Lokalizacja: Down under
Kontakt:

Re: grep + wyrażenie regularne

Post autor: JSokol »

Użyj flagi -o aby grep zwrócił tylko pasujące wyrażenie.
Poprawiona całość wygląda tak:

Kod: Zaznacz cały

grep -Eo '#!\w+#!' plik_wejsciowy > plik_wyjsciowy
Przetestowałem na pliku wejsciowym o takiej zawartości:

Kod: Zaznacz cały

a#!asd1#!h
b#!asd2#!u
c#!asd3#!j
d#!asd4#!k
e#!asd5#l
fukulelem
g#!asd6#!n
i zwrócił do wyjściowego taki wynik:

Kod: Zaznacz cały

#!asd1#!
#!asd2#!
#!asd3#!
#!asd4#!
#!asd6#!
fileth
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 09 gru 2011, 15:13
Płeć: Mężczyzna
Kontakt:

Re: grep + wyrażenie regularne

Post autor: fileth »

rewelacja poszlo !
brakowało wlasnie -o
dziękuję bardzo
______________________________
http://fileth.pl
Ubek308
Zakręcona Traszka
Zakręcona Traszka
Posty: 574
Rejestracja: 25 maja 2011, 10:17
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: grep + wyrażenie regularne

Post autor: Ubek308 »

Istnieje jeszcze egrep, wlasnie do takich zabaw.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości