Magaz, The Greek Linux Magazine
Magaz Logo

Προηγούμενο  Περιεχόμενα

2. crash course theory leaflet

2.1 θεωρία 1

Aντικαταστάσεις:

H εντολή αντικατάστασης έχει την μορφή: [address]s/oldregexp/newregexpr[/flags] όπου :


[..]      = προεραιτικό μέρος της εντολής, μπορείτε να το παραλείψετε 
oldregexp = τι να αντικαταστήσουμε 
newregexp = με τι 
address   = σε ποιο διάστημα (range) κειμένου θα γίνει η αντικατάσταση 
flags     = αν θα ρωτάει για κάθε αντικατάσταση, αν θα το κάνει σε όλο 
το κείμενο, αν θα τα δείχνει κλπ... 

Ετσι, το address μπορεί να είναι:


%       = θα εφαρμοστεί σε όλο το κείμενο 
1,5     = θα εφαρμοστεί από τη γραμμή 1 μέχρι την 5
1,$     = θα εφαρμοστεί από τη γραμμή 1 ως και την τελευταία (σε όλο 
δηλαδή το κείμενο)
        = (τίποτα),  θα εφαρμοστεί στην τρέχουσα γραμμή 

Μερικά flags μπορούν να είναι


g      = θα εκτελεστεί η εντολή σε όλα τις εμφανίσεις τρέχουσας γραμμής 
(Μια καλή ερώτηση που θα περιμένα να έχετε: Αν έχω για address το % , 
δεν είναι ισοδύναμο; Μια καλή απάντηση είναι ΟΧΙ. Αν παραλείψετε το g 
στα flags τότε το vi θα ψάξει για την oldregexp σε όλο το κείμενο αλλά 
αντικατάσταση θα γίνει ΜΟΝΟ για την πρώτη εμφάνιση της oldregexp ΣΕ ΚΑΘΕ 
ΓΡΑΜΜΗ. Αρα αν μια γραμμή περιέχει δύο φορές την oldregexp χρειάζεστε 
το flag g.) 
gc     = θα ρωτά για κάθε αντικατάσταση πριν την κάνει 
p      = εμφάνιση στο κάτω μέρος του vi όλων των υποψήφιων αλλαγών 
(tips: 3, 5, 6, 7, 9, 10, 11, 12, 13, 14) 

2.2 θεωρία 2

Μερικοί χαρακτήρες (με χαρακτήρα):


&         = Αν εμφανιστεί οπουδήποτε στα δεξιά μιας εντολής 
αντικατάστασης s, αντικαθίσταται από οτιδήποτε συνέπεσε στην αριστερή
πλευρά (tips: 5, 6, 7, 10, 14) 
.         = Οποιοσδήποτε χαρακτήρας (tips: 6, 7, 9, 12, 13)
*         = Οσοι (και όποιοι) χαρακτήρες (tips: 6, 7, 9, 12, 14) 
%         = Ολό το αρχείο (tips: 5, 10, 11, 12, 13, 14) 
^         = Αρχή γραμμής (tips: 3, 4, 7, 8, 9, 13) 
$         = Τέλος γραμμής (tips: 4, 8) 
[...]     = Οποιοσδήποτε χαρακτήρας από αυτούς που είναι εντός αγκύλης. 
Με Α-Χ εντός αγκύλης ορίζουμε όλους τους χαρακτήρες από τον Α εως τον X
κατά ASCII σειρά (tips: 3, 11, 14)
[^...]    = Οποιοσδήποτε χαρακτήρας εκτός από αυτούς που είναι εντός αγκύλης
\         = Escape character. Εξουδετερώνει τις "ειδικές" ιδιότητες του 
χαρακτήρα που ακολουθεί. Το vi αντιμετωπίζει δηλαδή τον επόμενο χαρακτήρα, 
ως κοινό. (tips: 6, 14) 
\{n,m\}   = Δηλώνει πως οι εμφανίσεις του χαρακτήρα που προηγείται αυτής της
έκφρασης θα κυμαίνονται από n το λιγότερο μέχρι m το περισσότερο (tips: 11) 

2.3 θεωρία 3

Regular Expressions


\(regexp\)      = Ομαδοποιεί με βάση το regular expression εντός παρένθεσης.
Οτι λοιπόν είναι μέσα στην παρένθεση θεωρείται ως ένα ενιαίο block. Μπορούμε 
πλέον να αναφερθούμε σε αυτό με βάση τον αριθμό του block αυτού. Αν είναι το 
πρώτο block που ομαδοποιήσαμε με αυτόν τον τρόπο, αναφερόμαστε σε αυτό με \1 
(tips: 9, 11, 12) 
//              = κενό regular expression ισοδυναμεί με το αμέσως προηγούμενο 
regular expression (tips: 9) 
/./             = μη κενή γραμμή, τουλάχιστον 1 χαρακτήρας 
/^$/            = κενή γραμμή, μόνο χαρακτήρας αλλαγής γραμμής 
/κάτι/          = το κάτι οπουδήποτε στη γραμμή
/^κάτι/         = το κάτι στην αρχή της γραμμής 
/κάτι$/         = το κάτι στο τέλος της γραμμής
/κάτι.$/        = το κάτι και ένας ακόμη οποιοσδήποτε χαρακτήρας στο τέλος της
γραμμής 
/κάτι\.$/       = το κάτι. στο τέλος της γραμμής
/κάτι[0-9]/     = το κάτι ακολουθούμενο από ψηφίο 
/κάτι[^0-9]/    = το κάτι ακολουθούμενο από μη ψηφίο

Προηγούμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!