Ένας γρήγορος οδηγός για τη χρήση Sed εντολές στο Linux

Μια εισαγωγή στην εντολή Linux sed

Το λειτουργικό σύστημα Linux χρησιμοποιεί εντολές τερματικού για να λειτουργήσει με το σύστημα αρχείων ενός υπολογιστή. Η κύρια χρήση της γραμμής εντολών Linux , η οποία είναι σύντομη για τον επεξεργαστή ροής, είναι να τροποποιήσετε κάθε γραμμή ενός αρχείου ή ροής αντικαθιστώντας συγκεκριμένα τμήματα της γραμμής. Κάνει αλλαγές βασικού κειμένου σε ένα αρχείο ή είσοδο από έναν αγωγό. Για παράδειγμα, ας πούμε ότι έχετε ένα αρχείο με το όνομα "songs.text" που περιέχει αυτές τις γραμμές:

1, Justin Timberlake, Τίτλος 545, Τιμή $ 6.30 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 4, Lady Gaga, Τίτλος 118, Τιμή $ 6.30 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 6, Elvis Presley, Τίτλος 335, Τιμή $ 6.30 7, John Lennon, Τίτλος 271, Τιμή $ 7.90

Κάνοντας αντικαταστάσεις κειμένου με Sed

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

sed 's / 6.30 / 7.30 /' songs.txt> songs2.txt

Αυτός ο κώδικας κάνει την αλλαγή και γράφει το τροποποιημένο αρχείο σε "songs2.txt". Το αρχείο εξόδου περιέχει:

1, Justin Timberlake, Τίτλος 545, Τιμή $ 7.30 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 4, Lady Gaga, Τίτλος 118, Τιμή $ 7.30 5, Johnny Cash, Τίτλος 482, Τιμή $ 6.50 6, Elvis Presley, Τίτλος 335, Τιμή $ 7.30 7, John Lennon, Τίτλος 271, Τιμή $ 7.90

Αν θέλετε να αντικαταστήσετε όλες τις εμφανίσεις του "Cash" με το "Trash" χρησιμοποιείτε:

sed 's / μετρητά / σκουπίδια /' songs.txt> songs2.txt

το οποίο δημιουργεί ένα αρχείο με περιεχόμενο:

1, Justin Timberlake, Τίτλος 545, Τιμή $ 7: 30 2, Taylor Swift, Τίτλος 723, Τιμή $ 7.90 3, Mick Jagger, Τίτλος 610, Τιμή $ 7.90 4, Lady Gaga, Τίτλος 118, Τιμή $ 7: 30 5, Johnny Trash, Τίτλος 482, Τιμή $ 6.50 6, Elvis Presley, Τίτλος 335, Τιμή $ 7: 30 7, John Lennon, Τίτλος 271, Τιμή $ 7.90

Φιλτράρισμα με την εντολή Sed

Το Sed χρησιμοποιείται επίσης συχνά για να φιλτράρει γραμμές σε αρχείο ή ροή. Για παράδειγμα, εάν θέλετε να δείτε μόνο τις γραμμές που περιέχουν "John", χρησιμοποιείτε:

sed -n '/ John / p' songs.txt> johns.txt

το οποίο γράφει τις ακόλουθες γραμμές στο αρχείο johns.txt:

5, Johnny Trash, Τίτλος 482, Τιμή $ 6.50 7, John Lennon, Τίτλος 271, Τιμή $ 7.90