Πώς να χρησιμοποιήσετε την εντολή seq στο Linux

Η εντολή Linux seq δημιουργεί λίστες αριθμών εν ριπή οφθαλμού. Πώς μπορεί όμως αυτή η λειτουργικότητα να αξιοποιηθεί στην πράξη; Θα σας δείξουμε πώς το seq μπορεί να σας φανεί χρήσιμο.

Η εντολή seq

Με την πρώτη ματιά, η εντολή Linux seq φαίνεται να είναι κάτι σαν περίεργο. Σας επιτρέπει να δημιουργήσετε ακολουθίες αριθμών γρήγορα και τέλος! Η λέξη-κλειδί εδώ, ωστόσο, είναι “γρήγορα”. Σε λίγο, θα δείτε πόσο γρήγορα μπορεί να εκτελεστεί αυτή η μικρή εντολή.

Ανεξάρτητα από το πώς δημιουργούνται, όμως, πόσο χρήσιμη είναι μια λίστα αριθμών; Η εντολή seq προστέθηκε στην 8η έκδοση του Unix το 1985. Είναι εκεί από τότε, οπότε πρέπει να κάνει κάτι που αξίζει τον κόπο.

ο φιλοσοφία του Unix είναι ότι είναι γεμάτο από μικρά βοηθητικά προγράμματα που κάνουν ένα πράγμα και το κάνουν καλά. Μία από τις κεντρικές αρχές αυτής της φιλοσοφίας είναι η σύνταξη προγραμμάτων που δέχονται πληροφορίες από άλλα προγράμματα. Φυσικά, αυτό σημαίνει επίσης ότι αυτά τα προγράμματα πρέπει να παράγουν έξοδο που μπορεί να χρησιμοποιηθεί ως είσοδος από άλλα προγράμματα.

Η εντολή seq εμφανίζεται μόνη της όταν χρησιμοποιείται με άλλες εντολές που κάνουν χρήση της εξόδου της, είτε μέσω σωλήνων είτε μέσω επέκτασης γραμμής εντολών.

Δημιουργία βασικών λιστών

Εάν εκκινήσετε το seq με έναν μόνο αριθμό ως παράμετρο γραμμής εντολών, μετράει από το ένα έως αυτόν τον αριθμό. Στη συνέχεια εκτυπώνει τους αριθμούς στο παράθυρο τερματικού, έναν αριθμό ανά γραμμή, όπως φαίνεται παρακάτω:

seq 6

ο

Εάν πληκτρολογήσετε δύο αριθμούς στη γραμμή εντολών, ο πρώτος θα είναι ο αριθμός έναρξης και ο δεύτερος ο αριθμός τέλους, όπως φαίνεται παρακάτω:

seq 4 10

Μπορείτε να ορίσετε ένα μέγεθος βήματος συμπεριλαμβάνοντας έναν τρίτο αριθμό. Βρίσκεται μεταξύ των αριθμών έναρξης και τέλους. Πληκτρολογούμε τα ακόλουθα για να ζητήσουμε από seq να δημιουργήσουμε μια λίστα αριθμών που αρχίζει με έξι, τελειώνει στο 48 και χρησιμοποιεί βήμα έξι:

seq 6 6 48

Μετρώντας αντίστροφα

Μπορούμε επίσης να ζητήσουμε από seq να δημιουργήσει μια λίστα με αριθμούς από τον υψηλότερο προς τον χαμηλότερο. Για να γίνει αυτό, ωστόσο, πρέπει να παρέχουμε ένα βήμα που είναι αρνητικό.

  Κοιτάξτε τα αστέρια στον υπολογιστή σας Linux με το Stellarium

Η ακόλουθη εντολή δημιουργεί μια λίστα που μετράει από το 24 έως το 12 στα βήματα του 6, επειδή πληκτρολογούμε το βήμα ως αρνητικό αριθμό:

seq 24 -6 12

Μετρώντας με δεκαδικούς αριθμούς

Οι αριθμοί έναρξης, τέλους και βήματος μπορούν επίσης να είναι δεκαδικοί. Εάν κάποιος από τους αριθμούς είναι δεκαδικός, οι άλλοι αντιμετωπίζονται επίσης ως δεκαδικοί. Η ακόλουθη εντολή δημιουργεί μια λίστα αριθμών με βήμα 0,2:

seq 1 0.2 2

Η ταχύτητα της ακολουθίας

Το seq είναι απίστευτα γρήγορο—το μόνο σημείο συμφόρησης είναι ο χρόνος που χρειάζεται για να πληκτρολογήσετε την εντολή στο παράθυρο του τερματικού. Για να δοκιμάσουμε την ταχύτητά του, ας ζητήσουμε μια λίστα με 250.000 αριθμούς.

Πληκτρολογούμε τα παρακάτω, χρησιμοποιώντας το χρόνος εντολή για να δείτε πόσο χρόνο χρειάζεται για να ολοκληρωθεί η διαδικασία:

time seq 250000

Τα αποτελέσματα εμφανίζονται κάτω από τη λίστα. Ακόμη και στον υπολογιστή δοκιμής μας με μέτρια τροφοδοσία, η seq είναι εκπληκτικά γρήγορη.

Ολόκληρη η λίστα δημιουργήθηκε και εγγράφηκε στην οθόνη σε περίπου 1/3 του δευτερολέπτου. Εάν ανακατευθύνουμε τη λίστα σε ένα αρχείο, μπορούμε ακόμη και να αποφύγουμε την επιβάρυνση της πληκτρολόγησης στο παράθυρο του τερματικού.

  Πώς να εγκαταστήσετε το Telegram σε Linux

Για να το κάνουμε αυτό, πληκτρολογούμε τα εξής:

time seq 250000 > numbers.txt

time seq 250000 > numbers.txt σε ένα παράθυρο τερματικού.”  width=”646″ ύψος=”147″ onload=”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”  onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”></p>
<p>Ο χρόνος που χρειάζεται για να συμπληρώσετε τη λίστα και να δημιουργήσετε το αρχείο είναι τώρα περίπου 1/7 του δευτερολέπτου.< /p> </p>
<h2 ρόλος=Χρήση διαχωριστή

Ένας νέος χαρακτήρας γραμμής είναι ο προεπιλεγμένος χαρακτήρας που εμφανίζεται μεταξύ κάθε αριθμού σε μια λίστα. Γι’ αυτό εμφανίζονται ως μια κατακόρυφη λίστα, με κάθε αριθμό στη δική του γραμμή. Εάν χρειάζεται, μπορείτε να δώσετε ένα άλλο διαχωριστικό.

Για παράδειγμα, ας πούμε ότι πρέπει να δημιουργήσετε μια λίστα οριοθετημένη με κόμμα, μια λίστα διαιρούμενη με άνω και κάτω τελείες ή οποιοδήποτε άλλο σημείο στίξης ή σύμβολο. Ο οριοθέτης είναι στην πραγματικότητα μια συμβολοσειρά, επομένως μπορείτε να χρησιμοποιήσετε περισσότερους από έναν χαρακτήρες.

Θα χρησιμοποιήσουμε την επιλογή -s (διαχωριστής). Η ακόλουθη εντολή θα δημιουργήσει μια λίστα οριοθετημένη με κόμματα:

seq s, 6 6 36

Αυτή η εντολή θα χρησιμοποιήσει μια άνω και κάτω τελεία (:) ως διαχωριστικό:

seq -s: 6 6 36

Αυτή η εντολή λέει στη seq να χρησιμοποιήσει δύο παύλες (-) ως διαχωριστικό:

seq -s-- 6 6 36

Χρήση συμβολοσειρών μορφοποίησης

Η εντολή seq υποστηρίζει επίσης Γλώσσα-ύφος μορφοποίηση συμβολοσειρών. Αυτά σας επιτρέπουν να μορφοποιήσετε την έξοδο με πολύ περισσότερο έλεγχο από το να προσδιορίσετε απλώς ένα διαχωριστικό. Για να χρησιμοποιήσετε μια συμβολοσειρά μορφής, χρησιμοποιείτε την επιλογή -f (format).

Η ακόλουθη εντολή λέει στη seq να χρησιμοποιήσει μηδενικά για να συμπληρώσει την έξοδο σε δύο χαρακτήρες:

seq -f "%02g" 6

ακολουθία -στ

Μπορούμε να μορφοποιήσουμε τη συμβολοσειρά με οποιοδήποτε κείμενο μας αρέσει και να τοποθετήσουμε τον αριθμό οπουδήποτε στη συμβολοσειρά, ως εξής:

seq -f "Number %02g in a C-like format string" 6

ακολουθία -στ

Ένας γρήγορος τρόπος για να ρυθμίσετε το μηδέν padding

Ο πιο γρήγορος τρόπος για να ορίσετε το μηδέν padding είναι να χρησιμοποιήσετε την επιλογή -w (ίσο πλάτος). Αυτό λέει στη seq να χρησιμοποιεί μηδενικά για να συμπληρώσει τους αριθμούς, ώστε να έχουν όλοι το ίδιο πλάτος με τον μεγαλύτερο αριθμό.

  Πώς να δημιουργήσετε κρυπτογραφημένους φακέλους στην επιφάνεια εργασίας Linux του KDE με θησαυροφυλάκια

Η ακόλουθη εντολή μετράει από το 0 έως το 1.000 σε βήματα του 100 και όλοι οι αριθμοί θα συμπληρώνονται με μηδενικά:

seq -w 0 100 1000

Ο μεγαλύτερος αριθμός παίρνει τέσσερις χαρακτήρες, επομένως όλοι οι στενότεροι αριθμοί συμπληρώνονται με μηδενικά σε αυτό το πλάτος (ακόμη και το 0 συμπληρώνεται με τέσσερα μηδενικά).

Σωληνώσεις ακολουθία Στο π.Χ

Ορίζοντας το διαχωριστικό ως μαθηματικό σύμβολο και εισάγοντας τη λίστα στην εντολή bc, μπορούμε αξιολογήστε τους αριθμούς σε αυτήν τη λίστα.

Η ακόλουθη εντολή δημιουργεί μια λίστα αριθμών που χωρίζονται με αστερίσκους

seq -s* 6

ξεκινώντας από το ένα και τελειώνοντας με έξι:

seq -s* 6 | bc

Εάν τροφοδοτήσουμε αυτήν τη λίστα στο bc, αξιολογεί τη λίστα χρησιμοποιώντας τους αστερίσκους

seq -s+ 5

ως σύμβολα πολλαπλασιασμού:

seq -s+ 5 | bc

Μπορούμε να το κάνουμε αυτό και με άλλα σύμβολα. Η παρακάτω εντολή χρησιμοποιεί ένα σύμβολο συν (+) για να δημιουργήσει μια λίστα στην οποία προστίθενται όλοι οι αριθμοί:

Πληκτρολογούμε τα ακόλουθα για να το διοχετεύσουμε στο bc και αξιολογούμε τη λίστα: Δημιουργία Αρχείων με seq Η εντολή αφής

ενημερώνει τις σφραγίδες ώρας και ημερομηνίας

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

σε αρχεία. Εάν το αρχείο δεν υπάρχει, αγγίξτε το για να το δημιουργήσετε. Μπορούμε να χρησιμοποιήσουμε την επέκταση γραμμής εντολών με άγγιγμα και seq για να δημιουργήσουμε μια συλλογή αρχείων με θεματική ονομασία, αλλά με διαφορετική αρίθμηση.

ls file*

Θα δημιουργήσουμε ένα σύνολο 10 αρχείων με το ίδιο όνομα βάσης και διαφορετικό αριθμό (file-1.txt, file-2.txt, και ούτω καθεξής).  Πληκτρολογούμε τα εξής:

Στη συνέχεια, πληκτρολογούμε τα εξής για να ελέγξουμε τα αρχεία:

αγγίξτε το $(seq -f

Χρήση seq στους βρόχους Bash

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

Μπορούμε να χρησιμοποιήσουμε seq σε σενάρια Bash για να ελέγξουμε βρόχους με δεκαδικούς.

chmod +x loop.sh

Πληκτρολογήστε το ακόλουθο κείμενο σε ένα πρόγραμμα επεξεργασίας και, στη συνέχεια, αποθηκεύστε το ως “loops.sh”:

./loop.sh

Στη συνέχεια, πληκτρολογούμε τα εξής για να κάνουμε το νέο μας σενάριο εκτελέσιμο:

Όταν εκτελούμε το σενάριο, ο μετρητής βρόχου εκτυπώνεται στο παράθυρο του τερματικού. Στη συνέχεια, μπορούμε να πληκτρολογήσουμε τα ακόλουθα για να δούμε τον μετρητή δεκαδικού βρόχου να αυξάνεται με κάθε επανάληψη του βρόχου:

Θυμηθείτε ότι η συνέχεια μπορεί επίσης να μετρήσει αντίστροφα. μπορείτε να το χρησιμοποιήσετε σε βρόχους με τον ίδιο τρόπο. Ωραίο και απλό Ένα πράγμα για το seq είναι ότι δεν υπάρχει μεγάλη καμπύλη μάθησης. Εχει ένα

αναζωογονητικά κοντό

σελίδα man, αλλά μπορείτε ακόμα να τη χρησιμοποιήσετε με ενδιαφέροντες τρόπους.

Επειδή συχνά χρειάζεται να δημιουργήσουμε γρήγορα δοκιμαστικά αρχεία με ρεαλιστικά μεγέθη, χρησιμοποιούμε seq με μια συμβολοσειρά μορφής. Στη συνέχεια ανακατευθύνουμε την έξοδο για να δημιουργήσουμε ένα αρχείο που περιέχει όσες γραμμές εικονικών δεδομένων θέλουμε.