Dosya içeriğini kolayca filtrelemek ve görüntülemek için pratik örneklerle grep komutunu anlama
GREP
'Küresel Normal İfade Baskısı' anlamına gelir. Kullanıcı tarafından sağlanan kalıpla eşleşen metin satırını aramak için Linux tarafından sağlanan kullanışlı bir komut satırı yardımcı programıdır.
grep
kullanıcının belirli bir dosyada aramak istediği dizeler veya kelimeler biçiminde kullanıcıdan girdi alır. Komut daha sonra kullanıcı tarafından belirtilen dosyayı bu kalıp için kontrol eder ve ardından sağlanan kalıpla eşleşen satırları döndürür.
Bir dosyanın içeriğini filtreleyerek mükemmel bir iş çıkarır, böylece belirli içeriği aynı anda tek veya birden fazla dosyada aramamızı kolaylaştırır.
Bu yazımızda, grep
komutun işleyişini bazı pratik örneklerle detaylı olarak inceleyelim.
İle sunulan seçenekler grep
komutu
Bunlar, grep
komutla sık sık kullanacağınız temel seçeneklerden bazılarıdır .
Seçenek |
Açıklama |
-i |
Büyük/küçük harfe duyarsız bir arama için |
-r |
Belirtilen dizindeki ve alt dizinlerindeki tüm dosyaları tekrar tekrar aramak için |
-c |
Bir dizenin toplam kaç kez göründüğünü görüntülemek için |
-v |
Eşleşmeyen satırları görüntülemek için |
-w |
Ayrı olarak kullanılan söz konusu kelime için filtre |
grep
Komutu kullanma
grep
komutu genellikle boru ( |
) yardımcı programıyla birlikte kullanılır . Diğer bazı Linux komutlarıyla kullanmak istediğinizde, kabuk borusu ile uygulanabilir. Bununla birlikte, grep
pipe ( |
) yardımcı programı olmadan tek başına da kullanılabilir .
Şimdi grep
, boru yardımcı programı olan ve olmayan komutun bazı temel sözdizimlerini görelim .
Önce size grep
komutu göstermek için kullanacağım örnek metin dosyasını göstereyim .
INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.
use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.
grep
boru ( | ) yardımcı programı ile kullanılır
grep
komutu, kabuk boruları kullanılarak diğer Linux komutlarıyla birlikte uygulanabilir. Örneğin, cat
dosyanın içeriğini görüntülemek için komutu kullanmak, ancak aynı zamanda grep
yalnızca görmek istediğiniz içeriği görüntülemek için komutu kullanarak çıkışı borulamak gibi . Örneği incelediğimizde bu daha net anlaşılacaktır.
sözdizimi :
[command] | grep [string]
Örnek :
cat sample.txt | grep legislature
Burada, cat
'sample.txt' dosyasından bazı satırları görüntülemek için komutu kullandım . Yalnızca içinde 'yasama' kelimesini içeren satırlar gösterilecek ve geri kalan satırlar yok sayılacaktır.
çıktı :
[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$
grep
boru ( | ) yardımcı programı olmadan kullanılır
grep
boru ( |
) yardımcı programını kullanmadan doğrudan ayrı bir komut olarak bile kullanılabilir .
sözdizimi :
grep [string_to_be_searched] [filename]
Örnek :
grep India sample.txt
çıktı :
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
Bu nedenle, grep
'sample.txt' metin dosyasından 'Hindistan' dizesini içeren satırları filtrelemek için komutu doğrudan kullandım .
grep
Komutu kullanarak büyük/küçük harfe duyarsız arama
Linux, komutları terminalde çalıştırdığımızda büyük/küçük harf duyarlılığı konusunda çok dikkatlidir. Bu, kullanıcının komuta yerleştirilen dize durumu konusunda dikkatli olmasını gerektirir.
Bunu bir örnek üzerinden görelim.
grep peace sample.txt
Bu durumda örnek dosyada 'barış' diye bir kelime olmadığı için çıktı alamayacağız. Baş harfi 'P' olan 'Barış' kelimemiz var. Sözcük aynıdır, ancak grep
komutu herhangi bir seçenek olmadan kullandığımızda , harf durumundaki herhangi bir değişikliği dikkate almadan dosyadaki tam eşleşmeyi arar.
Bu belirsizliği önlemek için, -i
kelimenin tam anlamıyla "dizeyi koyduğum durumu unutun ve dosyadaki tüm eşleşen kalıpları arayın"grep
komutunu söyleyen seçeneği kullanabilirsiniz .
Sözdizimi:
grep -i [string] [filename]
Örnek :
grep -i peace sample.txt
çıktı :
INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.
Eşleşen dizenin durumundan bağımsız olarak tüm eşleşen satırlar görüntülenir.
grep
Komutu kullanarak özyinelemeli arama
-r
Seçeneği tüm Bir dizindeki dosya ve komut kullanıcı tarafından sağlanan dize deseni ile eşleşen tüm alt dizinleri arar.
sözdizimi :
grep -i -r [string] [file_path]
Örnek :
grep -i -r tomcat /home/gaurav/workspace
Buradaki dize 'tomcat'tır ve dizin çalışma alanında aranacaktır. 'Çalışma alanı' dizinindeki tüm alt dizinler ve dosyalar da sağlanan dize modeliyle eşleşmesi için taranacaktır.
çıktı :
./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
./context_log.policy:grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
./context_log.policy: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
./context.xml:
./catalina.properties:# - Tomcat Bootstrap JARs
./catalina.properties:# - Tomcat API JARs
./catalina.properties:# - Tomcat JARs
./catalina.properties:# - Common non-Tomcat JARs
./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar
./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.char.enabled=true
./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000
./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000
./server.xml: pathname="conf/tomcat-users.xml" />
./server.xml:
./tomcat-users.xml:
./tomcat-users.xml:
./web.xml:
./web.xml:
NOT : Komutla -r
seçeneği kullanırken grep
dosya adını değil dosyanın yolunu sağlamamız gerekir.
Tüm kelimeleri yalnızca grep
komutla arama
Çoğu zaman, bir kelime arayacaksınız, ancak terminalinizi eşleşen kelimenizi içeren ancak tek bir kelime olarak içermeyen eşleşen satırlarla dolduracaksınız. Alt kısmı girdiğiniz dize olan bazı kelimeleri içeren satırları görebilirsiniz.
Bununla kafan mı karıştı? Endişelenme, örneğini aldıktan sonra anlamak çok daha kolay.
Örnek :
Burada, tek bir kelime 'cart' aramak ve 'sample.txt' dosyasında bu kelimeyle eşleşen tüm satırları görüntülemek istiyorum.
grep -i cart sample.txt
çıktı :
Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.
Çıktıda, 'Kartezyen' kelimesinin de 'cart' kelimesini içerdiğini ve dolayısıyla 'Kartezyen' kelimesini içeren satırların da görüntülenmesini istemesek de görüntülendiğini gözlemleyebilirsiniz.
Bu belirsizliği çözmek için -w
seçeneği grep
komutla birlikte kullanabilirsiniz .
sözdizimi :
grep -i -w [string] [filename]
Örnek :
grep -i -w cart sample.txt
çıktı :
use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.
Şimdi, – w
seçeneğini kullandığınızda, grep
yalnızca 'araba' kelimesinin bir bütün olarak kullanıldığı satırları alacaksınız.
grep
Komutu kullanarak ters arama
grep
komutu ters şekilde de kullanılabilir. grep
Komutu, eşleşen satırları gizleyerek ve sadece eşleşmenin bulunmadığı satırları görüntüleyerek zıt olarak kullanabiliriz . Bunu komutuyla -v
seçeneği kullanarak yapabilirsiniz grep
.
sözdizimi :
grep -i -v [string] [filename]
Örnek :
grep -i -v resource sample.txt
çıktı :
INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.
Çıktıda, 'kaynak' kelimesini içeren satır dışındaki tüm diğer satırlar görüntülenir.
Eşleşen dizenin oluşumlarını sayma
grep
Dosyadaki veriler kapsamlıysa komutun çıktısı genellikle çok uzundur. Ne kadar çok eşleşme olursa, grep
komutun çıktıları o kadar uzun olur . Linux, eşleşmenin tekrarlanma sayısını görüntüleyebileceğiniz bir seçenek sunar.
sözdizimi :
grep -i -c [string] [filename]
Örnek :
grep -i -c india sample.txt
çıktı :
[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/workspace$
Burada çıktı, sample.txt dosyasında 'Hindistan' kelimesinin oluşum sayısı olan bir sayıdır.
NOT : -i
Her örnekte seçeneği, büyük/küçük harf duyarlılığı konusunda güvende olmak için kullandım. Aradığınız kelimenin durumundan eminseniz, -i
seçeneği güvenle atlayabilirsiniz .
Çözüm
grep
Bu eğitimde komutun Linux sistemlerindeki temel kullanımlarını öğrendik . Ayrıca, gereksinimlerimize en uygun çeşitli içerikleri görüntülemeyi ve terminali bir sürü satırla doldurmamayı öğrendik. grep
komutu, büyük veri kümelerini taramak için kullanıldığında kesinlikle zaman kazandıracaktır.