grep
grep satırlar üzerinde çalışır. satırlar üzerinde çalışmak için awk, sed, cut gibi başka uygulamalar da bulunuyor. grep bu uygulamaların tersine satırı daha küçük alanlara ayırmaz. Sadece satırda belirtilen örüntü var veya yok şeklinde çalışır.
Satırın Ayarlanması
-A (After) seçeneği
Eşleşen satırdan sonra gelen kaç satırın daha gösterileceğini belirtir.
-B (Before) seçeneği
Eşleşen satırdan önce gelen kaç satırın daha gösterileceğini belirtir.
-C seçeneği
Eşleşen satırdan önce ve sonra gelen kaç satırın daha gösterileceğini belirtir.
Çıktının Ayarlanması
-c seçeneği
-c yani count ile kaç tane satır olduğu bulunur. Örnekte içinde read.txt dosyasında null bulunduran kaç satır olduğu görülüyor.
1
yazar.
-m seçeneği
Tüm satır yerine sadece eşleşen kısmı gösterir. Örnek'te mytext'ten önce ve sonra 3 karakter daha olması isteniyor ve sadece eşleşen metin gösteriliyor.
Düzenli İfade Örnekleri
Sonu belli bir karakter ile biten satırları arama
Örnek'te sonu / karakteri ile biten satırlar aranıyor.
Dosya ve Dizin Seçimi
En kolay çözüm find ile dosya ismine göre süzmek ve daha sonra satır aramak. Örnekte *.txt dosyaları içinde fred kelimesi aranıyor.
Windows'ta find
grep satırlar üzerinde çalışır. satırlar üzerinde çalışmak için awk, sed, cut gibi başka uygulamalar da bulunuyor. grep bu uygulamaların tersine satırı daha küçük alanlara ayırmaz. Sadece satırda belirtilen örüntü var veya yok şeklinde çalışır.
Satırın Ayarlanması
-A (After) seçeneği
Eşleşen satırdan sonra gelen kaç satırın daha gösterileceğini belirtir.
-B (Before) seçeneği
Eşleşen satırdan önce gelen kaç satırın daha gösterileceğini belirtir.
-C seçeneği
Eşleşen satırdan önce ve sonra gelen kaç satırın daha gösterileceğini belirtir.
Çıktının Ayarlanması
-c seçeneği
-c yani count ile kaç tane satır olduğu bulunur. Örnekte içinde read.txt dosyasında null bulunduran kaç satır olduğu görülüyor.
grep -o null file | grep -c null
Sonuç olarak mesela1
yazar.
-m seçeneği
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.
max-count anlamına gelir. Belirtilen sayı kadar satır bulunduktan sonra grep komutu sonlanır. Böylece çok büyük dosyaları okumak için vakit kaybedilmez. Örnekte xrandr komutunun içindeki ilk brightness kelimesini içeren satır aranıyor.BRIGHTNESS=`xrandr --verbose | grep -m 1 -i brightness | cut -f2 -d ' '`
-o seçeneğiTüm satır yerine sadece eşleşen kısmı gösterir. Örnek'te mytext'ten önce ve sonra 3 karakter daha olması isteniyor ve sadece eşleşen metin gösteriliyor.
grep -o '...mytext...' file
Arama Örüntüsünün Atanması
-P seçeneği
-P seçeneği
Pearl tarzı düzenli ifade kullanabilmeyi sağlar. Örnekte dosyadaki eksi sayıları bulunuyor.
$ grep -oP '(^|,)\K-\d+' file.csv
Pearl düzenli ifadesi şöyle okunuyor
-v seçeneği
Normalde grep verilen örüntüye uyan satırları gösterir, ancak -v ile örüntüye uyan satırların gösterilmemesi sağlanır.- (^|,) matches the start of a line or comma.
- \K discards the previously matched characters.
- -\d+ Matches - plus the following one or more numbers.
Some text
begin
Some text goes here.
end
Some more text
Basit bir regex ile bulmak için şöyle yapılır.grep -Pzo "^begin\$(.|\n)*^end$" file
Eğer begin ve end'i dahil etmek istersek (?<= ile look ahead, (?= ile look behind yapılır.grep -Pzo "(?<=^begin$\n)(.|\n)*(?=\n^end$)" file
-v seçeneği
Düzenli İfade Örnekleri
Sonu belli bir karakter ile biten satırları arama
Örnek'te sonu / karakteri ile biten satırlar aranıyor.
$ grep '/$'
file
Dosya ve Dizin Seçimi
-r seçeneği
bu seçenekle recursive arama yapılabilir. Bu seçeneğin tek dezavantajı dosya ismine göre süzme yapmaya izin vermemesi. grep'i iki kere kullanarak aşağıdaki çözüm kullanılabilir.grep -r fred . | grep '^[^:]*\.txt:'
En kolay çözüm find ile dosya ismine göre süzmek ve daha sonra satır aramak. Örnekte *.txt dosyaları içinde fred kelimesi aranıyor.
find . -name '*.txt' | xargs grep fred
grep Windows'ta yok ama find komutu kullanılabilir.
/C seçeneği
Eşleşen satır sayısı sayılır. Örnekte jpg dosyalarının sayısı bulunuyor.
Dir /b /a-d *.jpeg | find /c ".jpeg"
Hiç yorum yok:
Yorum Gönder