Bash: ενώ διαβάζετε τη γραμμή

Bash While Read Line



Όταν εργάζεστε σε σενάρια bash, μερικές φορές μπορεί να χρειαστεί να διαβάσετε ένα αρχείο γραμμή προς γραμμή. Ας εξηγήσουμε με ένα παράδειγμα. Έχετε κάποια δεδομένα σε ένα αρχείο κειμένου που πρέπει να εκτελεστούν ή να υποβληθούν σε επεξεργασία χρησιμοποιώντας ένα σενάριο. Έτσι, η εκτέλεση ενός σεναρίου bash για την επεξεργασία ενός αρχείου κειμένου είναι πολύ διαφορετική. Πρέπει να ακολουθήσετε μια καθορισμένη σύνταξη για να διαβάσετε ένα αρχείο γραμμή προς γραμμή. Αυτό το άρθρο θα σας βοηθήσει να διαβάσετε μια γραμμή από ένα αρχείο χρησιμοποιώντας τον βρόχο while στο Bash.

Βασική σύνταξη της γραμμής κατά την ανάγνωση

Η ακόλουθη σύνταξη χρησιμοποιείται για το κέλυφος bash για να διαβάσει ένα αρχείο χρησιμοποιώντας βρόχο while:







ενώ ανάγνωση -rγραμμή;
κάνω
πέταξε έξω '$ line'?
Έγινε <input.file

Η επιλογή «-r» στην προαναφερθείσα σύνταξη πέρασε την εντολή ανάγνωσης που αποφεύγει την ερμηνεία του backslash. Η επιλογή 'input_file' αντιπροσωπεύει το όνομα του αρχείου σας στο οποίο θέλετε να αποκτήσετε πρόσβαση χρησιμοποιώντας την εντολή 'read'.



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



ενώ IFS=ανάγνωση -rγραμμή;
κάνω
πέταξε έξω $ line?
Έγινε <input.file

Ανοίξτε το τερματικό χρησιμοποιώντας τη συντόμευση Ctrl + Alt + t και, στη συνέχεια, εκτελέστε τις ακόλουθες εντολές σε αυτό.





Παράδειγμα # 1: Ανάγνωση αρχείου γραμμή προς γραμμή

Ας πάρουμε ένα παράδειγμα στο οποίο υποθέτουμε ότι έχουμε ένα αρχείο με το όνομα OS.txt που περιέχει τα ονόματα όλων των σημαντικών διανομών Linux. Εάν θέλετε να διαβάσετε ένα αρχείο χωρίς να χρησιμοποιήσετε την εντολή ‘cat’, τότε, για το σκοπό αυτό, μπορείτε να εκτελέσετε την ακόλουθη εντολή για να εκτελέσετε τη συγκεκριμένη εργασία. Θα χρησιμοποιήσουμε τον βρόχο while που θα διαβάζει κάθε γραμμή από το αρχείο OS.txt και αποθηκεύει το περιεχόμενο σε κάθε βήμα σε μια μεταβλητή γραμμή $ που μπορείτε να εμφανίσετε αργότερα.

Επικολλήστε τα ακόλουθα ονόματα διανομών Linux στο κείμενο OS.txt



CentOS
Ubuntu
Debian
LinuxMint $ενώ ανάγνωσηγραμμή;
κάνω
πέταξε έξω $ line?
Έγινε <OS.txt


Από την παραπάνω εντολή, θα λάβετε την ακόλουθη απάντηση στο παράθυρο τερματικού:

Παράδειγμα # 2: Ανάγνωση αρχείου χρησιμοποιώντας το σενάριο bash

Δημιουργήστε ένα αρχείο bash και, στη συνέχεια, προσθέστε τον παρακάτω κωδικό σε αυτό το αρχείο για να διαβάσετε το περιεχόμενο του αρχείου. Μπορείτε να αποθηκεύσετε το προηγούμενο αρχείο κειμένου σε μια νέα μεταβλητή $ όνομα αρχείου και η μεταβλητή $ n χρησιμοποιείται για να διατηρήσει την τιμή κάθε γραμμής. Τώρα, χρησιμοποιώντας τον βρόχο while θα διαβάσουμε κάθε γραμμή από ένα αρχείο με έναν συγκεκριμένο αριθμό γραμμής.

#!/bin/bash
όνομα αρχείου='OS.txt'
ν=1
ενώ ανάγνωσηγραμμή;
κάνω
# για ανάγνωση κάθε γραμμής
πέταξε έξω «Γραμμή διανομής λειτουργικού συστήματος αρ.$ n:$ line'
ν= $((n+1))
Έγινε < $ όνομα αρχείου

Αποθηκεύστε το αρχείο με όνομα OSinfo.sh και πληκτρολογήστε την ακόλουθη εντολή στο τερματικό για να εκτελέσετε το παραπάνω σενάριο bash.

$κτυπώ δυνατάOSinfo.sh

Τώρα, εκτελέστε την εντολή cat για να δείτε το αρχικό περιεχόμενο αρχείου.

$ΓάταOS.txt

Εναλλακτική μέθοδος ανάγνωσης αρχείων

Χρήση ονόματος αρχείου από μια εντολή

Σε ένα αρχείο bash, πρέπει να προσθέσετε το ακόλουθο σενάριο κώδικα. Σε αυτό το σενάριο, πρέπει να λάβουμε ως όρισμα ένα όνομα αρχείου. Πρώτον, η τιμή ενός ορίσματος διαβάζεται από μια μεταβλητή $ 1 που έχει όνομα αρχείου για ανάγνωση. Θα ελέγξει ότι υπάρχει όνομα αρχείου στην καθορισμένη τοποθεσία και στη συνέχεια χρησιμοποιώντας τον βρόχο while διαβάζει ένα αρχείο γραμμή προς γραμμή παρόμοιο με το προηγούμενο παράδειγμα.

#!/bin/bash
όνομα αρχείου=$ 1
ενώ ανάγνωσηγραμμή;κάνω
# ανάγνωση κάθε γραμμής
πέταξε έξω $ line
Έγινε < $ αρχείο.κείμενο

Αποθηκεύστε το παραπάνω σενάριο με το όνομα «Readline.sh» και εκτελέστε την ακόλουθη εντολή στο τερματικό για να εκτελέσετε το παραπάνω σενάριο:

Στην παραπάνω έξοδο, θα παρατηρήσετε ότι το αρχείο ‘OSinfo.txt’ περνά ως όρισμα και το περιεχόμενο του ‘OSinfo.txt’ θα εμφανιστεί μετά την αφαίρεση επιπλέον κενών. Μπορείτε να εμφανίσετε το αρχικό περιεχόμενο αρχείου εκτελώντας το «cat OSinfo.txt».

συμπέρασμα

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