Πώς να γράψετε σε ένα αρχείο στο Bash

How Write File Bash



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

Υπάρχουν πολλοί τρόποι για να διαβάσετε και να γράψετε ένα αρχείο σε bash. Ο απλούστερος τρόπος είναι η χρήση τελεστών> και >>.







  • > ο χειριστής θα αντικαταστήσει τα υπάρχοντα δεδομένα
  • >> ο χειριστής θα προσθέσει δεδομένα

Η γενική μορφή χρήσης τελεστών ανακατεύθυνσης είναι:



Δεδομένα> Όνομα αρχείου
Δεδομένα >> Όνομα αρχείου

Ας κατανοήσουμε τη διαδικασία εγγραφής σε ένα αρχείο με ένα παράδειγμα:



Πώς να γράψετε ένα αρχείο χρησιμοποιώντας τελεστές ανακατεύθυνσης

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





Αποθηκεύστε το αρχείο κειμένου.



Πληκτρολογήστε την παρακάτω εντολή στο τερματικό:

$ echo Αντικατάσταση του υπάρχοντος κειμένου στο αρχείο> testfile.txt

Το υπερβολικό στύψιμο μπορεί να είναι επικίνδυνο. Ως εκ τούτου, είναι καλή πρακτική να ενεργοποιηθεί το noclobber. Η ρύθμιση του noclobber θα αποκλείσει οποιαδήποτε αντικατάσταση σε οποιοδήποτε αρχείο εξόδου.

$ set –o noclobber
$ echo Αντικατάσταση του υπάρχοντος κειμένου στο αρχείο> testfile.txt

Αλλά αν θέλετε να παρακάμψετε το noclobber, χρησιμοποιήστε το > | χειριστής αντί >> :

$ echo Αντικατάσταση του υπάρχοντος κειμένου στο αρχείο> | testfile.txt

Or μπορείτε απλώς να απενεργοποιήσετε το noclobber:

$ set + ή noclobber

Αλλά αυτή η εντολή θα αφαιρέσει την προστασία από όλα τα αρχεία.

Η παραπάνω έξοδος υποδεικνύει ότι το υπάρχον κείμενο έχει αντικατασταθεί. Τώρα, ας χρησιμοποιήσουμε το >> χειριστής:

$ echo Προσθήκη κειμένου στο υπάρχον αρχείο κειμένου >> testfile.txt

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

$ printf Καλώς ορίσατε n Αυτό είναι ένα νέο αρχείο κειμένου. > newtestfile.txt

Ας κατανοήσουμε την έννοια με ένα παράδειγμα σεναρίου bash. Ανοίξτε το Vim πληκτρολογώντας το vim στο τερματικό. Εάν δεν έχετε πρόγραμμα επεξεργασίας Vim στη συσκευή σας, εγκαταστήστε το χρησιμοποιώντας:

$ sudo apt install vim

Πληκτρολογήστε το σενάριο:

#! /bin/bash
echo Εισάγετε το όνομά σας
διαβάστε το όνομα
echo $ name> data_dir.txt
echo Εισάγετε την ηλικία σας
διαβάστε την ηλικία
echo $ age >> data_dir.txt
cat data_dir.txt

ο Γάτα Η εντολή χρησιμοποιείται για τη δημιουργία και επεξεργασία των αρχείων. Αποθηκεύστε το παραπάνω σενάριο στο Vim αλλάζοντας λειτουργία μετά το πάτημα του Esc κλειδί και στη συνέχεια πληκτρολογήστε : στο myscript.sh Το Ανοίξτε το τερματικό και εκτελέστε τον κωδικό:

Πώς να γράψετε ένα αρχείο χρησιμοποιώντας το Heredoc

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

Εντολή<<[-] Delimiter
Το
κείμενο/εντολές
Το

Οριοθέτης

Οποιαδήποτε συμβολοσειρά μπορεί να χρησιμοποιηθεί στη θέση του Οριοθέτη και - μπορεί επίσης να χρησιμοποιηθεί για την αφαίρεση τυχόν κενών καρτελών στο αρχείο. Ας το καταλάβουμε χρησιμοποιώντας ένα απλό παράδειγμα:

#! /bin/bash

Γάτα<< TEXTFILE
Αυτό είναι ένα αρχείο κειμένου.
Αυτό το αρχείο δημιουργείται χρησιμοποιώντας το heredoc.
ΑΡΧΕΙΟ ΚΕΙΜΕΝΟΥ

Η παραπάνω εντολή script script δημιουργεί ένα αρχείο κειμένου με το όνομα TEXTFILE και γράφει κείμενο στο αρχείο που μόλις δημιουργήθηκε. Τώρα αποθηκεύστε το αρχείο με το όνομα του myscript.sh Το Εκκινήστε το τερματικό και εκτελέστε το σενάριο.

Πώς να γράψετε ένα αρχείο χρησιμοποιώντας την εντολή Tee

Μια άλλη μέθοδος για τη σύνταξη ενός αρχείου είναι η χρήση της εντολής Tee. Ως όνομα που υποδεικνύει αυτή η εντολή παίρνει είσοδο και γράφει σε ένα αρχείο και εμφανίζει ταυτόχρονα την έξοδο. Από προεπιλογή, η εντολή Tee θα αντικαταστήσει τα υπάρχοντα δεδομένα.

$ echo Αυτό είναι κάποιο κείμενο | tee textfile.txt

Για να προσθέσετε τη χρήση –α:

$ echo Αυτό είναι ένα άλλο κείμενο | tee –a textfile.txt

Για να γράψετε πολλές γραμμές, χρησιμοποιήστε:

$ echo Προσθήκη κειμένου σε πολλά αρχεία | tee textfile1.txt textfile2.txt textfile3.txt

Η παραπάνω εντολή θα δημιουργήσει τρία αρχεία αν δεν υπάρχουν και θα γράψει κείμενο σε καθένα από αυτά.

συμπέρασμα

Αυτός ο οδηγός εστιάζει σε πολλαπλές προσεγγίσεις για την εγγραφή σε ένα αρχείο σε bash με παραδείγματα. Στη δέσμη ενεργειών bash, υπάρχουν πολλοί τρόποι για να γράψετε ένα αρχείο, αλλά ο πιο απλός είναι να χρησιμοποιείτε τελεστές ανακατεύθυνσης>, >>. Για να γράψετε πολλαπλές γραμμές, μπορείτε να χρησιμοποιήσετε το heredoc και αν θέλετε να γράψετε τα ίδια δεδομένα σε πολλές γραμμές, τότε η εντολή tee είναι αρκετά βολική.