SED
Κάνει αντικαταστάσεις strings σε ένα αρχείο. Η ανάλυση της εντολής αυτής γίνεται μέσω παραδειγμάτων γιατί τα παραδείγματα βοηθούν περισσότερο στην κατανόηση βασικών και χρήσιμων λειτουργιών της εντολής.
sed -e '1,5d' file1
Διαγράφει τις 5 πρώτες γραμμές του file1 και εμφανίζει τις υπόλοιπες.
ΠΑΡΑΔΕΙΓΜΑ
file1
Binst 555-6235
Dickerson 555-1842
Eisner 555-1234
Green 555-2240
Hrarii 555-0256
Janatha 555-7358
Lewis 555-3237
Takata 555-5341
Wozni 555-1234
ΑΠΟΤΕΛΕΣΜΑ
Janatha 555-7358
Lewis 555-3237
Takata 555-5341
Wozni 555-1234
sed -e '6,$d' file1
Διαγράφει τις γραμμές του file1 από την 6η μέχρι την τελευταία και εμφανίζει τις υπόλοιπες (δηλαδή τις πρώτες 5)
ΑΠΟΤΕΛΕΣΜΑ
Binst 555-6235
Dickerson 555-1842
Eisner 555-1234
Green 555-2240
Hrarii 555-0256
sed -n -e '1,3p' file1
Εμφανίζει τις 3 πρώτες γραμμές του file1
ΑΠΟΤΕΛΕΣΜΑ
Binst 555-6235
Dickerson 555-1842
Eisner 555-1234
sed -e '1,3p' file1
Εμφανίζει όλες τις γραμμές του file1, απλώς τις πρώτες τρεις τις εμφανίζει από δύο φορές την κάθε μία.
ΑΠΟΤΕΛΕΣΜΑ
Binst 555-6235
Binst 555-6235
Dickerson 555-1842
Dickerson 555-1842
Eisner 555-1234
Eisner 555-1234
sed -n -e 'l' file1
Εμφανίζει το file1 ολόκληρο αλλά όπως θα το έβλεπε ένας κειμενογράφος. Στο τέλος κάθε γραμμής δηλαδή υπάρχει ο χαρακτήρας $. Το tab αν έχει πατηθεί ανάμεσα σε λέξεις εμφανίζεται ως \t κοκ.
ΑΠΟΤΕΛΕΣΜΑ
Binst\t\t555-6235\r$
Dickerson\t555-1842\r$
Eisner\t\t555-1234\r$
Green\t\t555-2240\r$
Hrarii\t\t555-0256\r$
Janatha\t\t555-7358\r$
Lewis\t\t555-3237\r$
Takata\t\t555-5341\r$
Wozni\t\t555-1234\r$
sed -e '5q' file1
Εμφανίζονται οι πέντε πρώτες γραμμές του file1.
ΑΠΟΤΕΛΕΣΜΑ
Binst 555-6235
Dickerson 555-1842
Eisner 555-1234
Green 555-2240
Hrarii 555-0256
sed -e '1,3d' -e '5,6d' file1
Εμφανίζει όλες τις γραμμές του file1 εκτός από τις 1-3 και 5-6.
ΑΠΟΤΕΛΕΣΜΑ
Green 555-2240
Lewis 555-3237
Takata 555-5341
Wozni 555-1234
ΠΡΟΣΟΧΗ! Το -e χρησιμοποιείται για να μπορεί κανείς να γράψει παραπάνω από μία εντολές sed μαζί. Αυτό σημαίνει ότι το -e ήταν απαραίτητο μόνο στην τελευταία εντολή ενω στις υπόλοιπες θα μπορούσε να έχει παραληφθεί.
sed -e '/banana/d' file1
Εμφανίζει όλες τις γραμμές του file1 οι οποίες δεν περιέχουν το banana ως string μέσα τους.
ΠΑΡΑΔΕΙΓΜΑ
file1
cherwey
cherry
banana
orange
Persimmon
apple
%%banana
apple
ORANGE
ΑΠΟΤΕΛΕΣΜΑ
cherwey
cherry
orange
Persimmon
apple
apple
ORANGE
sed -n -e '/banana/d' -e '/orange/d' file1
Δεν εμφανίζει τις γραμμές που περιέχουν το string banana αλλά μόνο αυτές που έχουν το string orange. Αν μια γραμμή περιέχει και banana και orange τότε αυτή δεν εμφανίζεται. Το -n δηλαδή χρησιμοποιείται για να εμφανίζονται μόνο οι γραμμές στις οποίες έχει γίνει κάποια αλλαγή και όχι οι υπόλοιπες.
ΠΑΡΑΔΕΙΓΜΑ
file1
banana
orange
Persimmon
apple
%%banana
apple
ORANGE
banana orange
orange banana
ΑΠΟΤΕΛΕΣΜΑ
orange
sed -e 's/banana/carot/g' file1
Γίνεται αντικατάσταση του banana με το carot στο file1.
ΑΠΟΤΕΛΕΣΜΑ
carot
orange
Persimmon
apple
%%carot
apple
ORANGE
carot orange
orange carot
sed -e '/apple/q' file1
Εμφανίζει όλες τις γραμμές του file1 μέχρι την πρώτη εμφάνιση του string apple.
ΑΠΟΤΕΛΕΣΜΑ
banana
orange
Persimmon
apple
sed -n '/Persimmon/,/orange/p' file1
Εμφανίζει όλο το κείμενο του file1 το οποίο περιέχεται μεταξύ της πρώτης εμφάνισης του string Persimmon και της πρώτης εμφάνισης του string orange μετά το Persimmon.
ΑΠΟΤΕΛΕΣΜΑ
Persimmon
apple
%%banana
apple
ORANGE
banana orange
sed -e 's/[A-Z]/juice/g' file1
Αντικαθιστά κάθε κεφαλαίο λατινικό γράμμα του file1 με τη λέξη juice.
ΑΠΟΤΕΛΕΣΜΑ
banana
orange
juiceersimmon
apple
%%banana
apple
juicejuicejuicejuicejuicejuice
banana orange
orange banana
sed -e 's/^[aeiou]/juice/g' file1
Αντικαθιστά τον πρώτο χαρακτήρα κάθε γραμμής του file1, η οποία ξεκινά με πεζό λατινικό φωνήεν, με τη λέξη juice.
ΑΠΟΤΕΛΕΣΜΑ
banana
juicerange
Persimmon
juicepple
%%banana
juicepple
ORANGE
banana orange
juicerange banana
sed -e 's/^[^aeiou]/juice/g' file1
Αντικαθιστά τον πρώτο χαρακτήρα κάθε γραμμής του file1, η οποία δεν ξεκινά με πεζό λατινικό φωνήεν, με τη λέξη juice.
ΑΠΟΤΕΛΕΣΜΑ
juiceanana
orange
juiceersimmon
apple
juice%banana
apple
juiceRANGE
juiceanana orange
orange banana
sed 's/^/ /g' file1
Στην αρχή κάθε γραμμής του file1 προσθέτει πέντε κενά, δηλαδή κάθε γραμμή του file1 ξεκινά μετατοπισμένη κατά πέντε κενά προς τα δεξιά.
ΑΠΟΤΕΛΕΣΜΑ
banana
orange
Persimmon
apple
%%banana
apple
ORANGE
banana orange
orange banana