Cara Menggunakan Perintah seq di Linux

Diterbitkan: 2022-01-29
Prompt terminal pada PC Linux.
Fatmawati Achmad Zaenuri/Shutterstock

Perintah seq Linux menghasilkan daftar angka dalam sekejap mata. Tetapi bagaimana fungsi ini dapat digunakan secara praktis? Kami akan menunjukkan kepada Anda bagaimana seq mungkin berguna bagi Anda.

Perintah seq

Sepintas, perintah seq Linux tampak aneh. Ini memungkinkan Anda untuk menghasilkan urutan angka dengan cepat dan hanya itu! Namun, kata kuncinya di sini adalah "cepat". Sebentar lagi, Anda akan melihat seberapa cepat perintah kecil ini dapat dijalankan.

Terlepas dari bagaimana mereka dihasilkan, seberapa bergunakah daftar angka? Perintah seq ditambahkan ke edisi ke-8 Unix pada tahun 1985. Sudah ada sejak itu, jadi itu harus melakukan sesuatu yang bermanfaat.

Filosofi Unix adalah penuh dengan utilitas kecil yang melakukan satu hal dan melakukannya dengan baik. Salah satu prinsip utama dari filosofi ini adalah menulis program yang menerima masukan dari program lain. Tentu saja, itu juga berarti program-program ini harus menghasilkan output yang dapat digunakan sebagai input oleh program lain.

Perintah seq muncul dengan sendirinya ketika digunakan dengan perintah lain yang menggunakan outputnya, baik melalui pipa atau ekspansi baris perintah.

Pembuatan Daftar Dasar

Jika Anda meluncurkan seq dengan satu nomor sebagai parameter baris perintah, itu dihitung dari satu ke nomor itu. Ini kemudian mencetak nomor di jendela terminal, satu nomor per baris, seperti yang ditunjukkan di bawah ini:

 barisan 6 

Iklan

Jika Anda mengetik dua angka pada baris perintah, yang pertama akan menjadi nomor awal dan yang kedua akan menjadi nomor akhir, seperti yang ditunjukkan di bawah ini:

 barisan 4 10 

Anda dapat mengatur ukuran langkah dengan memasukkan angka ketiga. Itu duduk di antara angka awal dan akhir. Kami mengetik berikut ini untuk meminta seq membuat daftar angka yang dimulai dengan enam, berakhir pada 48, dan menggunakan langkah enam:

 barisan 6 6 48 

Menghitung Mundur

Kita juga bisa meminta seq untuk membuat daftar angka dari yang tertinggi sampai yang terendah. Untuk melakukannya, bagaimanapun, kita harus memberikan langkah yang negatif.

Perintah berikut menghasilkan daftar yang dihitung dari 24 hingga 12 dalam langkah 6 karena kami mengetikkan langkah sebagai angka negatif:

 barisan 24 -6 12 

Menghitung Dengan Desimal

Angka awal, akhir, dan langkah juga bisa berupa desimal. Jika salah satu angka adalah desimal, yang lain juga diperlakukan sebagai desimal. Perintah berikut menghasilkan daftar angka dengan langkah 0.2:

 barisan 1 0.2 2 

Kecepatan seq

seq sangat cepat—satu-satunya hambatan adalah waktu yang Anda perlukan untuk mengetikkan perintah di jendela terminal. Untuk menguji kecepatannya, mari kita minta daftar 250.000 angka.

Iklan

Kami mengetik berikut ini, menggunakan perintah time untuk melihat berapa lama proses yang diperlukan untuk menyelesaikan:

 deret waktu 250000 

Hasilnya ditampilkan di bawah daftar. Bahkan pada PC uji kami yang bertenaga sedang, seq sangat cepat.

Seluruh daftar dibuat dan ditulis ke layar dalam waktu sekitar 1/3 detik. Jika kita mengarahkan daftar ke file, kita bahkan dapat menghindari overhead mengetik di jendela terminal.

Untuk melakukannya, kita ketik berikut ini:

 urutan waktu 250000 > angka.txt 

Waktu yang diperlukan untuk menyelesaikan daftar dan membuat file sekarang sekitar 1/7 detik.

Menggunakan Pemisah

Karakter baris baru adalah karakter default yang ditampilkan di antara setiap nomor dalam daftar. Itu sebabnya mereka muncul sebagai daftar vertikal, dengan setiap nomor pada barisnya sendiri. Jika perlu, Anda dapat menyediakan pemisah lain.

Iklan

Misalnya, Anda perlu membuat daftar yang dipisahkan koma, daftar yang dibagi dengan titik dua, atau tanda baca atau simbol lainnya. Pembatas sebenarnya adalah string, sehingga Anda dapat menggunakan lebih dari satu karakter.

Kami akan menggunakan opsi -s (pemisah). Perintah berikut akan menghasilkan daftar yang dipisahkan koma:

 seq s, 6 6 36

Perintah ini akan menggunakan titik dua ( : ) sebagai pemisah:

 seq -s: 6 6 36

Perintah ini memberitahu seq untuk menggunakan dua tanda hubung ( - ) sebagai pemisah:

 seq -s-- 6 6 36 

Menggunakan String Format

Perintah seq juga mendukung string format gaya bahasa C. Ini memungkinkan Anda untuk memformat output dengan lebih banyak kontrol daripada hanya menentukan pemisah. Untuk menggunakan string format, Anda menggunakan opsi -f (format).

Perintah berikut memberi tahu seq untuk menggunakan nol untuk memasukkan output ke dua karakter:

 seq -f "%02g" 6 

Iklan

Kita dapat memformat string dengan teks apa pun yang kita suka, dan menempatkan nomor di mana saja dalam string, sebagai berikut:

 seq -f "Nomor %02g dalam string format mirip-C" 6 

Cara Cepat untuk Menyetel Nol Padding

Cara tercepat untuk menyetel bantalan nol adalah dengan menggunakan opsi -w (lebar sama). Ini memberitahu seq untuk menggunakan angka nol untuk mengisi angka, jadi semuanya memiliki lebar yang sama dengan angka terbesar.

Perintah berikut menghitung dari 0 hingga 1.000 dalam langkah 100, dan semua angka akan diisi dengan nol:

 seq -w 0 100 1000 

Angka terpanjang membutuhkan empat karakter, jadi semua angka yang lebih sempit diisi dengan nol hingga lebar itu (bahkan 0 diisi dengan empat nol).

Perpipaan seq Ke bc

Dengan mengatur pemisah sebagai simbol matematika dan memasukkan daftar ke dalam perintah bc , kita dapat mengevaluasi angka-angka dalam daftar itu.

Perintah berikut menghasilkan daftar angka yang dipisahkan oleh tanda bintang ( * ), dimulai dari satu dan diakhiri dengan enam:

 seq -s* 6
Iklan

Jika kita memasukkan daftar tersebut ke dalam bc , daftar tersebut akan dievaluasi menggunakan tanda bintang ( * ) sebagai simbol perkalian:

 seq -s* 6 | SM

Kita juga bisa melakukan ini dengan simbol lain. Perintah di bawah ini menggunakan tanda tambah ( + ) untuk membuat daftar di mana semua angka ditambahkan:

 barisan -s+ 5

Kami mengetik yang berikut untuk menyalurkannya ke bc dan mengevaluasi daftar:

 barisan -s+ 5 | SM 

Membuat File Dengan seq

Perintah touch memperbarui stempel waktu dan tanggal pada file. Jika file tidak ada, sentuh akan membuatnya. Kita dapat menggunakan perluasan baris perintah dengan touch dan seq untuk membuat kumpulan file yang diberi nama tematik, tetapi dengan nomor yang berbeda.

Kami akan membuat satu set 10 file dengan nama dasar yang sama dan nomor yang berbeda (file-1.txt, file-2.txt, dan seterusnya). Kami mengetik berikut ini:

 sentuh $(seq -f "file-%g.txt" 1 10)

Kemudian, kami mengetik yang berikut untuk memeriksa file:

 file ls* 

Menggunakan seq di Bash Loops

Kita dapat menggunakan seq dalam skrip Bash untuk mengontrol loop dengan desimal.

Iklan

Ketik teks berikut ke dalam editor, lalu simpan sebagai "loops.sh":

 #!/bin/bash

  untuk val di $(seq 5 0.2 6.6); melakukan

  echo "Nilainya sekarang: $val"

selesai

Selanjutnya, kami mengetik yang berikut untuk membuat skrip baru kami dapat dieksekusi:

 chmod +x loop.sh 

Saat kami menjalankan skrip, penghitung loop dicetak di jendela terminal. Kami kemudian dapat mengetik berikut ini untuk melihat peningkatan penghitung loop desimal dengan setiap iterasi dari loop:

 ./loop.sh 

Ingatlah bahwa seq juga dapat menghitung mundur; Anda dapat menggunakannya dalam loop dengan cara yang sama.

Bagus dan Sederhana

Satu hal tentang seq adalah tidak ada banyak kurva belajar. Ini memiliki halaman man pendek yang menyegarkan, tetapi Anda masih dapat menggunakannya dengan cara yang menarik.

Karena kita sering perlu dengan cepat membuat file pengujian dengan ukuran yang realistis, kita menggunakan seq dengan format string. Kami kemudian mengarahkan output untuk membuat file yang berisi sebanyak mungkin baris data dummy yang kami inginkan.

TERKAIT: Laptop Linux Terbaik untuk Pengembang dan Penggemar