Android

Örneklerle Linux kesme komutu

03 - En Basit 3 Linux Komutu

03 - En Basit 3 Linux Komutu

İçindekiler:

Anonim

Linux ve Unix sistemlerinde metin dosyalarını işlemenizi ve filtrelemenizi sağlayan birçok yardımcı program vardır. Kes, belirtilen dosyalardan veya borulu verilerden satır parçalarını kesmenizi ve sonucu standart çıktıya yazdırmanızı sağlayan bir komut satırı yardımcı programıdır. Bir çizginin parçalarını ayırıcı, bayt konumu ve karakter ile kesmek için kullanılabilir.

Bu öğreticide, pratik örnekler ve en yaygın kesim seçeneklerinin ayrıntılı açıklamaları ile Linux kesim komutunun nasıl kullanılacağını göstereceğiz.

Kesme Komutu Nasıl Kullanılır

Cut komutunun sözdizimi aşağıdaki gibidir:

cut OPTION……

Cut komutunu kullanırken aşağıdaki seçeneklerden birini ve yalnızca birini kullanmalısınız:

  • -f ( --fields=LIST ) - Bir alan, bir dizi alan veya bir alan aralığı belirterek seçin. Bu en yaygın kullanılan seçenektir. -b ( --bytes=LIST ) - Bir bayt, bir bayt kümesi veya bir bayt aralığı belirleyerek seçin. -c ( --characters=LIST ) - Bir karakter, bir dizi karakter veya bir karakter aralığı belirleyerek seçin.

Diğer seçenekler:

  • -d ( --delimiter ) - Varsayılan “SEKME” sınırlayıcısı yerine kullanılacak bir sınırlayıcı belirtin. --complement - seçimi tamamlar. Bu seçeneği kullanırken kesim, seçilen dışındaki tüm baytları, karakterleri veya alanları görüntüler. -s ( --only-delimited ) - Varsayılan olarak kesim, sınırlayıcı karakter içermeyen herhangi bir satırı yazdırır. Bu seçeneği kullanırken kesim, sınırlayıcı içermeyen satırları yazdırmaz. --output-delimiter - Varsayılan değer, giriş sınırlayıcıyı çıkış sınırlayıcısı olarak kullanmaktır. Bu seçenek, farklı bir çıkış sınırlayıcı dizesi belirtmenize olanak tanır.

Cut komutu sıfır veya daha fazla giriş DOSYA adını kabul edebilir. Herhangi bir DOSYA belirtilmezse veya DOSYA - olduğunda, kesim standart girişi okuyacaktır.

-f , -b ve -c seçeneklerine iletilen LIST bağımsız değişkeni bir tam sayı, virgülle ayrılmış birden çok tam sayı, bir tam sayı aralığı veya virgülle ayrılmış birden çok tam sayı aralığı olabilir. Her aralık aşağıdakilerden biri olabilir:

  • N 1. alandan, bayt veya karakter 1'den başlayarak. N- N. Alandan, bayt veya karakterden satırın sonuna kadar. NM , N'den Mth alanına, bayt veya karaktere. -M ilkinden Mth alanına, bayt veya karaktere.

Tarlaya Göre Kesmek

Kes komutu çoğunlukla her bir dosya satırından veya standart girişten seçilen alanları görüntülemek için kullanılır. Belirtilmediğinde varsayılan sınırlayıcı “SEKME” dir.

Aşağıdaki örneklerde, aşağıdaki dosyayı kullanacağız. Tüm alanlar sekmelerle ayrılır.

sınama.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Kullanacağınız 1. ve 3. alanları görüntülemek için:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

Veya 1. alandan 4. alana görüntülemek istiyorsanız:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Sınırlayıcıya göre kesim nasıl yapılır

Bir sınırlayıcıya göre kesmek için -d seçeneğini ve ardından kullanmak istediğiniz sınırlayıcıyı kullanın.

Örneğin, 1. ve 3. alanları sınırlayıcı olarak “:” kullanarak görüntülemek için şunu yazarsınız:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Herhangi bir karakteri sınırlayıcı olarak kullanabilirsiniz. Aşağıdaki örnekte boşluk karakterini ayırıcı olarak kullanıyoruz ve 2. alanı yazdırıyoruz:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Seçim nasıl tamamlanır

Seçim alanı listesini tamamlamak için --complement seçeneğini kullanın. Bu yalnızca -f seçeneğiyle seçili olmayan alanları yazdırır.

Aşağıdaki komut, 1. ve 3. dışındaki tüm alanları yazdırır:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

Bir çıkış sınırlayıcı nasıl belirtilir

Çıkış sınırlayıcıyı belirtmek için --output-delimiter seçeneğini kullanın. Örneğin, çıkış sınırlayıcıyı _ olarak ayarlamak için şunları kullanırsınız:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Bayt ve Karakterlere göre kesim

Daha ileri gitmeden önce baytlar ve karakterler arasında bir ayrım yapalım.

Bir bayt 8 bittir ve 256 farklı değeri temsil edebilir. ASCII standardı oluşturulduğunda, İngilizce ile çalışmak için gerekli tüm harfleri, sayıları ve sembolleri dikkate aldı. ASCII karakter tablosunda 128 karakter vardır ve her karakter bir bayt ile temsil edilir. Bilgisayarlar dünya çapında popüler hale gelmeye başladığında, teknoloji şirketleri farklı diller ve 256'dan fazla karakter içeren diller için yeni karakter kodlamaları uygulamaya başladılar, basit bir 1'e 1 eşleme mümkün değildi. Bu, belge paylaşımı veya web sitelerine göz atma gibi farklı sorunlara yol açıyor ve dünyanın yazı sistemlerinin çoğunu işleyebilecek yeni bir Unicode standardı gerekiyordu. UTF-8 bu sorunları çözmek için oluşturuldu. UTF-8'de, tüm karakterler 1 bayt ile temsil edilmez. Karakterler 1 byte ila 4 byte ile temsil edilebilir.

Aşağıdaki örneklerde, 2 bayt alan ü karakterini kullanıyoruz.

Bayt konumu belirterek bir çizginin bir bölümünü kesmek için -b ( --bytes ) seçeneğini kullanın.

5. baytı seçin:

echo 'drüberspringen' | cut -b 5

b

5., 9. ve 13. baytları seçin:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

1 - 5 arasındaki bayt aralığını seçin:

echo 'drüberspringen' | cut -b 1-5

drüb

Bu makaleyi yazarken, GNU coreutils içinde paketlenmiş kesim versiyonunun karakterlere göre kesim yapma seçeneği yoktur. -c seçeneğini kullandığınızda cut, -b seçeneğini kullandığınız gibi davranır.

Kesim Örnekleri

Kesme komutu genellikle borulama yoluyla diğer komutlarla birlikte kullanılır. İşte birkaç örnek.

Tüm kullanıcıların bir listesini alın

getent passwd komutunun çıktısı, 1. dosyalama sınırlayıcı olarak kullanılarak yazdırılan cut geçirilir.

getent passwd | cut -d ':' -f1

En sık kullanılan 10 komutu görüntüleme

Aşağıdaki örnekte cut, history komut çıkışının her satırından ilk 8 baytı çıkarmak için kullanılır.

history | cut -c8- | sort | uniq -c | sort -rn | head

Sonuç

Şimdiye kadar Linux kesme komutunu nasıl kullanacağınızı iyi anlamanız gerekir. Çok yararlı olsa da, cut komutunun bazı sınırlamaları vardır. Sınırlayıcı olarak birden fazla karakter belirtmeyi desteklemez ve birden çok desimetreyi desteklemez.

kesme terminali