Αναζήτηση και αντικατάσταση Το κείμενο μπορεί να είναι μια απλή εργασία χρησιμοποιώντας το συντάκτες κειμένου πιο βασικό. Αλλά τι συμβαίνει όταν πρέπει να κάνετε το ίδιο έργο σε πολλά αρχεία ταυτόχρονα?
Λοιπόν, τα πράγματα γίνονται περίπλοκα εκεί ... ή όχι τόσο πολύ. |
Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε το sed για να αντικαταστήσουμε όλες τις εμφανίσεις της λέξης "mongo" με τη λέξη "aurelio" σε όλα τα αρχεία που έχουν την επέκταση .txt και τα οποία βρίσκονται στο / home / user / myfolder / folder.
εύρεση / σπίτι / χρήστης / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;
Τόσο εύκολο ...
Πριν τελειώσετε, αξίζει να σημειωθεί ότι ορισμένοι επεξεργαστές κειμένου επιτρέπουν την εκτέλεση αυτής της λειτουργίας χρησιμοποιώντας γραφική διεπαφή. Μεταξύ άλλων, αξίζει να επισημανθούν οι Jedit, Geany, Regexxer κ.λπ.
μεγάλος
Χρησιμοποιώ το Gedit
gedit για πολλαπλά αρχεία ??? όπως και???
Πώς μπορώ να βάλω ένα grep ανάμεσα στο ai;
Αυτό που χρειάζομαι είναι να κάνω τα εξής, να ψάξω στο σπίτι για όλα τα αρχεία που ονομάζονται index.html και που περιέχουν τη λέξη "XXXXXXX" και να την αντικαταστήσω με "YYYYYYYYYYY", καθώς θα μπορούσε να γίνει έτσι ώστε να πραγματοποιεί αναζήτηση μόνο σε τα αρχεία που έχουν στην πραγματικότητα τη συμβολοσειρά;
Σε ευχαριστώ πάρα πολύ !
Χρησιμοποιώ επίσης το Gedit, αλλά σας ευχαριστώ πολύ
Λείπει το επιχείρημα για το exec. Ο σωστός κωδικός θα ήταν:
εύρεση / home / user / myfolder / -name * .txt -exec sed -i "s / mongo / aurelio / g" {} \;
Χαιρετισμούς 😀
Εχεις δίκιο! Ευχαριστώ!
Το διόρθωσα ήδη. : =)
Μόλις το δοκίμασα (ως ROOT):
εύρεση / usr / share / icons / ACYL-Allgray / -name * .svg -exec sed -i "s / 666666/000000 / g" {} \;
για να αλλάξετε το χρώμα ενός ολόκληρου συνόλου εικονιδίων. Η αλήθεια είναι ότι είναι μια πολύ ισχυρή εντολή, συνήθως αυτή η εργασία θα μου πήρε ώρες να επεξεργάζομαι αρχείο από αρχείο.
Εισαγωγή κειμένου σε πολλά αρχεία, ανάλογα με τον αριθμό της γραμμής, στην περίπτωσή μου γραμμή 2 (2i), σε centos linux
εύρεση / σπίτι // public_html / res / -name -exec sed -i "2i \;" {} \;
δεν βγήκε ολόκληρος ο κωδικός, γι 'αυτό υπέβαλα εκ νέου
find / home / user / public_html / res / -name filename.ext -exec sed -i "2i \ text για εισαγωγή" {} \;