Linux'ta seq Komutu Nasıl Kullanılır

Yayınlanan: 2022-01-29
Linux PC'de bir terminal istemi.
Fatmawati Achmad Zaenuri/Shutterstock

Linux seq komutu, göz açıp kapayıncaya kadar sayı listeleri oluşturur. Ancak bu işlevsellik pratik kullanıma nasıl konulabilir? seq'in sizin için nasıl kullanışlı olabileceğini size göstereceğiz.

seq Komutu

İlk bakışta, Linux seq komutu bir tuhaflık gibi görünüyor. Hızlı bir şekilde sayı dizileri oluşturmanıza olanak tanır ve hepsi bu kadar! Ancak buradaki anahtar kelime “hızlı” dır. Birazdan, bu küçük komutun ne kadar hızlı çalışabileceğini göreceksiniz.

Yine de, nasıl üretildiklerine bakılmaksızın, bir sayı listesi ne kadar yararlıdır? seq komutu, 1985'te Unix'in 8. baskısına eklendi. O zamandan beri oradaydı, bu yüzden değerli bir şey yapması gerekiyor.

Unix'in felsefesi, bir şeyi yapan ve onu iyi yapan küçük yardımcı programlarla dolu olmasıdır. Bu felsefenin temel ilkelerinden biri, diğer programlardan girdi kabul eden programlar yazmaktır. Tabii ki, bu aynı zamanda bu programların diğer programlar tarafından girdi olarak kullanılabilecek çıktılar üretmesi gerektiği anlamına gelir.

seq komutu, çıktısını kullanan diğer komutlarla birlikte kullanıldığında, borular veya komut satırı genişletmesi yoluyla kendi başına gelir.

Temel Liste Oluşturma

seq komut satırı parametresi olarak tek bir sayı ile başlatırsanız, birden o sayıya kadar sayar. Ardından terminal penceresindeki sayıları aşağıda gösterildiği gibi satır başına bir sayı olacak şekilde yazdırır:

 sıra 6 

Reklamcılık

Komut satırına iki sayı yazarsanız, aşağıda gösterildiği gibi, ilki başlangıç ​​numarası, ikincisi ise bitiş numarası olacaktır:

 sıra 4 10 

Üçüncü bir sayı ekleyerek bir adım boyutu belirleyebilirsiniz. Başlangıç ​​ve bitiş numaraları arasında oturur. seq altı ile başlayan, 48 ile biten ve altı basamak kullanan bir sayı listesi oluşturmasını istemek için aşağıdakini yazıyoruz:

 sıra 6 6 48 

Geriye Sayma

Ayrıca seq en yüksekten en düşüğe bir sayı listesi oluşturmasını isteyebiliriz. Ancak bunu yapmak için olumsuz bir adım sağlamalıyız.

Aşağıdaki komut, adımı negatif bir sayı olarak yazdığımız için 6'lık adımlarla 24'ten 12'ye kadar sayan bir liste oluşturur:

 sıra 24 -6 12 

Ondalık Sayılarla Sayma

Başlangıç, bitiş ve adım numaraları da ondalık sayılar olabilir. Sayılardan herhangi biri ondalık ise, diğerleri de ondalık sayı olarak kabul edilir. Aşağıdaki komut, 0,2 adımlı bir sayı listesi oluşturur:

 sıra 1 0.2 2 

seq hızı

seq cayır cayır yanan hızlıdır—tek darboğaz, komutu terminal penceresine yazmanız için geçen süredir. Hızını test etmek için 250.000 rakamlık bir liste isteyelim.

Reklamcılık

İşlemin ne kadar sürede tamamlandığını görmek için time komutunu kullanarak şunu yazıyoruz:

 zaman sırası 250000 

Sonuçlar listenin altında görüntülenir. Orta düzeyde güçlü test PC'mizde bile, seq şaşırtıcı derecede hızlıdır.

Tüm liste saniyenin 1/3'ü kadar bir sürede oluşturuldu ve ekrana yazıldı. Listeyi bir dosyaya yönlendirirsek, terminal penceresine yazmanın ek yükünden bile kurtulabiliriz.

Bunu yapmak için aşağıdakileri yazıyoruz:

 zaman dizisi 250000 > sayılar.txt 

Listeyi tamamlamak ve dosyayı oluşturmak için geçen süre artık saniyenin 1/7'si kadardır.

Ayırıcı Kullanmak

Yeni bir satır karakteri, bir listedeki her numara arasında görüntülenen varsayılan karakterdir. Bu nedenle, her sayı kendi satırında olacak şekilde dikey bir liste olarak görünürler. Gerekirse, başka bir ayırıcı sağlayabilirsiniz.

Reklamcılık

Örneğin, virgülle ayrılmış bir liste, iki nokta üst üste ile bölünmüş bir liste veya başka bir noktalama işareti veya sembolü oluşturmanız gerektiğini varsayalım. Sınırlayıcı aslında bir dizedir, bu nedenle birden fazla karakter kullanabilirsiniz.

-s (ayırıcı) seçeneğini kullanacağız. Aşağıdaki komut, virgülle ayrılmış bir liste oluşturacaktır:

 sıra s, 6 6 36

Bu komut, ayırıcı olarak iki nokta üst üste (:) kullanır :

 sıra -s: 6 6 36

Bu komut, seq ayırıcı olarak iki tire ( - ) kullanmasını söyler:

 sıra -s-- 6 6 36 

Biçim Dizelerini Kullanma

seq komutu ayrıca C dili stili biçim dizelerini de destekler. Bunlar, çıktıyı yalnızca bir ayırıcı belirtmekten çok daha fazla denetimle biçimlendirmenize olanak tanır. Biçim dizesi kullanmak için -f (biçim) seçeneğini kullanırsınız.

Aşağıdaki komut, seq çıktıyı iki karaktere doldurmak için sıfır kullanmasını söyler:

 seq -f "%02g" 6 

Reklamcılık

Dizeyi istediğimiz herhangi bir metinle biçimlendirebilir ve sayıyı dizenin herhangi bir yerine aşağıdaki gibi yerleştirebiliriz:

 seq -f "C benzeri bir biçim dizesinde %02g sayısı" 6 

Sıfır Dolguyu Ayarlamanın Hızlı Yolu

Sıfır dolguyu ayarlamanın en hızlı yolu -w (eşit genişlik) seçeneğini kullanmaktır. Bu, seq sayıları doldurmak için sıfır kullanmasını söyler, böylece hepsi en büyük sayı ile aynı genişlikte olur.

Aşağıdaki komut, 100'lük adımlarla 0'dan 1.000'e kadar sayar ve tüm sayılar sıfırlarla doldurulur:

 sıra -w 0 100 1000 

En uzun sayı dört karakter alır, bu nedenle tüm dar sayılar bu genişliğe sıfırlarla doldurulur (0 bile dört sıfırla doldurulur).

bc içine boru sırası

Ayırıcıyı matematiksel bir sembol olarak ayarlayarak ve listeyi bc komutuna bağlayarak o listedeki sayıları değerlendirebiliriz.

Aşağıdaki komut, bir ile başlayan ve altı ile biten, yıldızlarla ( * ) ayrılmış bir sayı listesi oluşturur:

 sıra -s* 6
Reklamcılık

Bu listeyi bc ile beslersek, çarpma sembolleri olarak yıldız işaretlerini ( * ) kullanarak listeyi değerlendirir:

 sıra -s* 6 | M.Ö

Bunu diğer sembollerle de yapabiliriz. Aşağıdaki komut, tüm sayıların eklendiği bir liste oluşturmak için bir artı işareti ( + ) kullanır:

 sıra -s+ 5

Bunu bc aktarmak ve listeyi değerlendirmek için aşağıdakileri yazıyoruz:

 sıra -s+ 5 | M.Ö 

seq ile Dosya Oluşturma

touch komutu, dosyalardaki saat ve tarih damgalarını günceller. Dosya yoksa, dokunma onu oluşturur. Tematik olarak adlandırılmış ancak farklı numaralandırılmış dosyalardan oluşan bir koleksiyon oluşturmak için touch ve seq ile komut satırı genişletmeyi kullanabiliriz.

Aynı temel ada ve farklı bir numaraya sahip 10 dosyalık bir set oluşturacağız (dosya-1.txt, dosya-2.txt vb.). Aşağıdakileri yazıyoruz:

 $(seq -f "file-%g.txt" öğesine dokunun 1 10)

Ardından, dosyaları kontrol etmek için aşağıdakileri yazıyoruz:

 ls dosyası* 

Bash Döngülerinde seq kullanma

Bash betiklerinde seq ondalık sayılarla döngüleri kontrol etmek için kullanabiliriz.

Reklamcılık

Aşağıdaki metni bir düzenleyiciye yazın ve ardından “loops.sh” olarak kaydedin:

 #!/bin/bash

  $(seq 5 0.2 6.6); yapmak

  echo "Şimdiki değer: $val"

tamamlamak

Ardından, yeni betiğimizi çalıştırılabilir hale getirmek için aşağıdakini yazıyoruz:

 chmod +x döngü.sh 

Komut dosyasını çalıştırdığımızda, terminal penceresinde döngü sayacı yazdırılır. Daha sonra, döngünün her yinelemesinde ondalık döngü sayacı artışını görmek için aşağıdakini yazabiliriz:

 ./loop.sh 

seq geriye doğru da sayabileceğini unutmayın; bunu döngülerde de aynı şekilde kullanabilirsiniz.

Güzel ve Basit

seq ile ilgili bir şey, çok fazla bir öğrenme eğrisinin olmamasıdır. Canlandırıcı kısa bir man sayfası var, ancak yine de onu ilginç şekillerde kullanabilirsiniz.

Genellikle gerçekçi boyutlarda hızlı bir şekilde test dosyaları oluşturmamız gerektiğinden, seq bir format dizesiyle kullanırız. Daha sonra çıktıyı istediğimiz kadar sahte veri satırı içeren bir dosya oluşturmak için yeniden yönlendiririz.

İLGİLİ: Geliştiriciler ve Meraklılar için En İyi Linux Dizüstü Bilgisayarlar