sobota, 26 lipca 2014

Grep i wyrażenia zachłanne


Przy wyciąganiu danych z pliku csv przy pomocy grepa należy pamiętać o tzw. wyrażeniach zachłannych. Dla przykładowego pliku:
1,http://google.com,Google,EN,100
2,http://wikipedia.com,Wikipedia,EN,80
3,http://onet.pl,Onet,PL,90
użycie takiego polecenia:
grep "http.*," -o
spowoduje wyświetlenie wyników w sposób zachłanny:
http://google.com,Google,EN,
http://wikipedia.com,Wikipedia,EN,
http://onet.pl,Onet,PL,
Aby wyciągnąć adresy URL przed pierwszym przecinkiem należy użyć opcji -P (Perl) oraz znacznika wymuszającego niezachłanne zachowanie:
grep "http.*?," -oP