αντικαταστήστε τη συμβολοσειρά κειμένου στο αρχείο [Guide]

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

Αντικατάσταση συμβολοσειράς κειμένου στο αρχείο – sed

Το εργαλείο sed είναι ο καλύτερος τρόπος για να αντικαταστήσετε μια συμβολοσειρά κειμένου σε ένα αρχείο στο Linux. Ο λόγος? Είναι απλό στη χρήση και κάνει πολύ καλά τη δουλειά του. Το Sed είναι συνήθως προεγκατεστημένο στο 99% των λειτουργικών συστημάτων Linux, επομένως δεν χρειάζεται να το εγκαταστήσετε για να το χρησιμοποιήσετε.

Η αντικατάσταση μιας συμβολοσειράς κειμένου σε ένα αρχείο με Sed γίνεται με την εντολή sed -i. Δείτε πώς να το χρησιμοποιήσετε. Αρχικά, ανοίξτε ένα παράθυρο τερματικού στην επιφάνεια εργασίας του Linux. Μπορείτε να ανοίξετε ένα παράθυρο τερματικού πατώντας Ctrl + Alt + T στο πληκτρολόγιο.

Μόλις ανοίξει το παράθυρο του τερματικού και είναι έτοιμο για χρήση, γράψτε το sed -i στη γραμμή εντολών τερματικού. Αυτή είναι η αρχή της εντολής αντικατάστασης.

sed -i

Αφού γράψετε την εντολή sed -i, προσθέστε ένα εισαγωγικό. Αυτό το εισαγωγικό είναι απαραίτητο, καθώς όλο το κείμενο που αντικαθίσταται με sed -i πρέπει να ξεκινά μετά από αυτό το σημάδι.

sed -i '

Μετά την πρώτη ένδειξη ‘, γράψτε s/. Το s/ πηγαίνει ακριβώς πριν από το υπάρχον κείμενο που θέλετε να αντικαταστήσετε χρησιμοποιώντας το sed.

sed -i 's/

Τώρα που το s/ είναι γραμμένο στη γραμμή εντολών του τερματικού, ήρθε η ώρα να πούμε στον sed ποιο κείμενο να αντικαταστήσει στο αρχείο. Σε αυτό το παράδειγμα, θα αντικαταστήσουμε τη λέξη “μήλο”.

sed -i 's/apple

Όταν το κείμενο που θέλουμε να αντικαταστήσουμε γραφτεί στην εντολή, το επόμενο βήμα είναι να γράψουμε στο νέο κείμενο που θα το αντικαταστήσει. Σε αυτό το παράδειγμα, θα αντικαταστήσουμε τα “μήλα” με τα “πορτοκάλια”.

sed -i 's/apples/oranges

Μόλις το κείμενο που θέλουμε να αντικαταστήσουμε γραφτεί στην εντολή (πορτοκάλια), κλείστε την εντολή με g/. Το g/ λέει στο sed να αντικαταστήσει όλες τις παρουσίες κειμένου (μήλα) με το νέο κείμενο (πορτοκάλια). Θα πρέπει να μοιάζει με το παρακάτω παράδειγμα.

  Κλειδώστε μια σύσκεψη για να κρατήσετε έξω τους ανεπιθύμητους χρήστες

Σημείωση: εάν δεν θέλετε να αντικαταστήσετε κάθε κείμενο στο αρχείο (από μήλα σε πορτοκάλια, για παράδειγμα), αφαιρέστε το g και βάλτε το να εκτελεστεί ως sed -i ‘s/apples/orange/’.

sed -i 's/apple/orange/g'

Τέλος, πείτε στον sed σε ποιο αρχείο βρίσκεται το κείμενο που χρειάζεται αντικατάσταση. Σε αυτό το παράδειγμα, το fruit.txt στον αρχικό κατάλογο είναι ο στόχος.

sed -i 's/apples/oranges/g' ~/fruit.txt

Πατήστε το πλήκτρο enter για να εκτελέσετε την εντολή και να αντικαταστήσετε τη συμβολοσειρά κειμένου στο αρχείο.

Αντικατάσταση συμβολοσειράς κειμένου στο αρχείο – Perl

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

  Χρησιμοποίησα ένα έξυπνο ηχείο Cortana όλο το Σαββατοκύριακο. Να γιατί απέτυχε

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

Η χρήση της Perl για την αντικατάσταση συμβολοσειρών κειμένου σε ένα αρχείο απαιτεί το τερματικό. Ανοίξτε ένα τερματικό στην επιφάνεια εργασίας Linux πατώντας Ctrl + Alt + T στο πληκτρολόγιο. Ή, αναζητήστε το “Terminal” στο μενού της εφαρμογής και ξεκινήστε το με αυτόν τον τρόπο.

Μόλις ανοίξει το παράθυρο του τερματικού και είναι έτοιμο για χρήση, ξεκινήστε πληκτρολογώντας perl -pe στη γραμμή εντολών. Η εντολή perl -pe είναι αυτό που χρειάζεται για να αντικαταστήσει μια συμβολοσειρά κειμένου σε ένα αρχείο.

perl -pe

Μόλις γράψετε το perl -pe στη γραμμή εντολών του τερματικού, θα πρέπει να ξεκινήσετε με το πρώτο εισαγωγικό. Αυτό το σημάδι λέει στην Perl πού βρίσκεται η περιοχή αντικατάστασης κειμένου στην εντολή.

perl -pe '

Ακολουθώντας το πρώτο εισαγωγικό, προσθέστε s/, ακολουθούμενο από τη συμβολοσειρά του κειμένου που θέλετε να αντικαταστήσετε και ένα άλλο /. Για παράδειγμα, για να αντικαταστήσετε το “μήλα” στο αρχείο fruit.txt, θα γράψετε το ακόλουθο κείμενο.

perl -pe 's/apples/

Αφού γράψετε τις λέξεις που θέλετε να αντικαταστήσετε, προσθέστε τη λέξη που θα αντικαταστήσει το υπάρχον κείμενο. Για παράδειγμα, εάν θέλετε να αντικαταστήσετε το “μήλα” στο “fruit.txt” με το “πορτοκάλια”, προσθέστε το “πορτοκάλια” μετά το perl -pe ‘s/apples/ ώστε να μοιάζει με perl -pe ‘s/apples/oranges/ .

perl -pe 's/apples/oranges/

Μόλις και οι δύο συμβολοσειρές κειμένου βρίσκονται στην εντολή, θα πρέπει να καθορίσετε το αρχείο εισόδου που χρησιμοποιεί η Perl. Για παράδειγμα, εάν θέλετε να αντικαταστήσετε κείμενο στο αρχείο “fruit.txt”, θα πρέπει να το καθορίσετε στην εντολή.

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

Σημείωση: σε αυτό το παράδειγμα, το αρχείο “fruit.txt” βρίσκεται στον αρχικό κατάλογο (~/). Φροντίστε να αντικαταστήσετε το “~/fruit.txt” με τη θέση του αρχείου κειμένου σας για να λειτουργήσει η εντολή.

perl -pe 's/apples/oranges/' ~/fruit.txt

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

perl -pe 's/apples/oranges/' ~/fruit.txt > /tmp/output.txt;cat /tmp/output.txt > ~/fruit.txt

Όταν εκτελεστεί η παραπάνω εντολή, η συμβολοσειρά κειμένου θα αντικατασταθεί με το νέο κείμενο που καθορίσατε. Στο παράδειγμά μας, αντικαταστήσαμε τα «μήλα» με τα «πορτοκάλια». Για να δείτε τις αλλαγές, πληκτρολογήστε την παρακάτω εντολή.

cat fruit.txt