Περισσότερα
Διαγραφή γραμμών σε ένα αρχείο κειμένου που περιέχουν μια συγκεκριμένη συμβολοσειρά
Πώς μπορώ να χρησιμοποιήσω το sed για να διαγράψω όλες τις γραμμές ενός αρχείου κειμένου που περιέχουν μια συγκεκριμένη συμβολοσειρά;
1652
3
Για να αφαιρέσετε τη γραμμή και να εκτυπώσετε την έξοδο στην τυπική έξοδο:
Για να τροποποιήσετε απευθείας το αρχείο - δεν λειτουργεί με το BSD sed:
Το ίδιο, αλλά για BSD sed (Mac OS X και FreeBSD) - δεν λειτουργεί με το GNU sed:
Για να τροποποιήσετε απευθείας το αρχείο (και να δημιουργήσετε ένα αντίγραφο ασφαλείας) - λειτουργεί με BSD και GNU sed:
Υπάρχουν πολλοί άλλοι τρόποι για να διαγράψετε γραμμές με συγκεκριμένη συμβολοσειρά εκτός από το
sed
:AWK
Ruby (1.9+)
Perl
Shell (bash 3.2 και νεότερη έκδοση)
GNU grep
Και φυσικά
sed
(η εκτύπωση του αντιστρόφου είναι ταχύτερη από την πραγματική διαγραφή):Μπορείτε να χρησιμοποιήσετε το sed για να αντικαταστήσετε γραμμές στη θέση τους σε ένα αρχείο. Ωστόσο, φαίνεται να είναι πολύ πιο αργή από το να χρησιμοποιήσετε το grep για την αντιστροφή σε ένα δεύτερο αρχείο και στη συνέχεια να μετακινήσετε το δεύτερο αρχείο πάνω από το αρχικό.
π.χ.
ή
Η πρώτη εντολή διαρκεί 3 φορές περισσότερο στο δικό μου μηχάνημα ούτως ή άλλως.