Work5 REMARKS Εργ4 - Ασκ 3 και Εργ5 - Ασκ 2,3,4 [imanousi@it.teithe.gr] #lab4: askhsh 3 #imanousi Να κάνεις τα αρχεία σου εκτελέσιμα chmod +x lab4ask[3-7].imanousi να τα τρέξεις, και θα δεις τα αποτελέσματα! #1. Thlefwno pou arxizei apo 5 kai teleiwnei se 1 1st questiom egrep -n --color 5-...1$ ask3 #2. Onoma pou arxizei apo J h W 2nd question egrep -n --color ', [JW]' ask3 #3. Epitheto mhkous 4 xarakthrwn 3rd question egrep -n --color '^[A-Z][a-z][a-z][a-z],' ask3 #4. De periexoun ta grammata J h W 4th question egrep -n --color ^[^JW]*$ ask3 #5. Epitheto pou ksekina apo M ews Z 5th question egrep -n --color ^[M-Z] ask3 #6. Epitheto pou ksekinaei apo M ews Z kai arithmo thlefwnou pou teleivnei me 1 h 2 6th question egrep -n --color "^[M-Z].*,.*,.*[12]$" ask3 #7. Arithmos Thlefwnou pou den teleiwnei se 22 7th question egrep -n --color [^2]$ ask3 και η option v είναι πολύ βολική #LAB 5 : ASKHSH 2 #imanousi 1. ; egrep --color -n '[0-9]*:[0-9]*' intro #δεν ισχύει για την 25 η -27η 2. ; egrep --color -n '[0-9]*-[0-9]*-[0-9]*' intro 3. ; egrep --color -n '([*])\1\1.' intro 4. ; egrep --color -n '^[*]*' intro # ΟΧΙ, * σημαίνει επανάληψη από 0 - πολλές 5. ; egrep --color -n '^[[:upper:]]' intro 6. ; egrep --color -n '^[[:lower:]]' intro #πάλι κεφαλαία 7. ; egrep --color -n '(.)\1\1' intro 8. ; egrep --color -n '^[[:digit:]]+$' intro 9. ; egrep --color -n '^[^[:alpha:]]*$' intro
#LAB 4: ASKHSH 6 LAB5 ASKHSH 3 #imanousi 1. ls -l f? egrep '^.(...)...\1' 2. ls -l f? egrep '^.(...)\1\1' 3. ls -l f? egrep '^..(..).\1.\1' 4. ls -l f? egrep '^..(.)..\1..\1.' 5. ls -l f? egrep '^.(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^.(.).(.)...\1.\2' # δεν έκλεισες το ' #LAB 4: ASKHSH 7 LAB5 ASKHSH 4 #imanousi a. egrep '^[^:]*(.{7})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]*' /etc/passwd -i # βγάζει 3 αποτελέσματα. Αν βάλεις την επιλογή i θα δώσει 898 γραμμές b. egrep '^[^:]*(.{4})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]*[^:]*\1' /etc/passwd i #OXI # βγάζει πχ και το # zigouri:x:1672:1032:zigouri:/home/student/postgrad/zigouri:/bin/bash # που δεν έχει όνομα c. egrep '^[^:]*(.{5})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]*[^:]*\1' /etc/passwd i # OXI #ιδιο λογική Βάζε και -color να τα βλέπεις χρωματιστά [lrigouts@it.teithe.gr] [vkiosses@it.teithe.gr] #! /bin/bash #στο παρακάτω αρχείο έβαλες όνομα lab4ask3.lrigouts ή lab4ask3.$user? #Francis, John, 5-3871 #Wong, Fred, 4-4123 Ηθελα το αρχείο που περιέχει #Jones, Thomas, 1-4122 τις εντολές να ονομάζεται #Jones, Tom, 5-4122 lab4ask3.lrigouts #Salazar, Richard, 5-2522 #Salazar, Tom, 3-2521 ενώ το αρχείο αναζήτησης #Jones, Tommy, 5-2513 tel ή ask3 #S, R, 6-3433 1 erotisi1: egrep --color "^.*,.*, 5.*1$" lab4ask3.lrigouts tel 2 erotisi2:
egrep --color " [JW]" lab4ask3.lrigouts 3 erotisi3: egrep --color "^[[:alpha:]]{4}," lab4ask3.lrigouts 4 erotisi4: egrep --color "^*[^JW]*$" lab4ask3.lrigouts 5 erotisi5: egrep --color "^[M-Z]" lab4ask3.lrigouts # Το * σημαίνει επανάληψη, δεν πάει μόνο του # (θελει κάτι μπροστά πχ.*) erotisi6: egrep --color "^[M-Z].*[12]$" lab4ask3.lrigouts erotisi7: egrep --color "[^2}[^2]$" lab4ask3.lrigouts [lrigouts@it.teithe.gr] #lab5ask3.lrigouts "dimiourgo ta 7 arxeia me ta dikaiomata poy anagrafontai (px chmod 757 f1) " 1= ; ls -l f? egrep "^.(...)...\1" 2= ; ls -l f? egrep "^.(.)(.)(.)\1\2\3\1\2\3" 3= ; ls -l f? egrep "^..(.)(.).\1\2.\1\2" 4= ; ls -l f? egrep "^..(.)..\1..\1." 5= ; ls -l f? egrep "^.(.).(.)\1.\2\1.\2" 6= ; ls -l f? egrep "^.(.).(.)...\1.\2" [vkiosses@it.teithe.gr] #lab5ask2.vkiosses 1. \(Briskei tis grames poy periexoyn ora\) #αν θες να περιέχεται, δεν βάζεις ^ egrep --color -n '^[[:digit:]]*:[[:digit:]]*' lab5ask2* intro #χάνεις την 28 #Apantisi:11,12,13,19,20,21 2. \(Briskei tis grammes poy periexoyn tilefoniko noymero\) egrep --color -n '*[[:digit:]]{4}-[[:digit:]]{3}-[[:digit:]]{3}*' lab5ask2* #Apantisi:14,18,23,24,32 3. \(Briskei tis grammes poy periexoyn 2 h perissotera sinexomena asterakia\) egrep --color -n '*{2,}[*][*]' lab5ask2* #Apantisi:6,7,16 4. \(Briskei tis grammes poy xekinoyn me 2 toylaxiston asterakia\) egrep --color -n '^{2,}[*][*]' lab5ask2* #Apantisi:6 5. \(Briskei tis grammes poy xekinoyn me kefalaio gramma\) egrep --color -n '^[[:upper:]]' lab5ask2* #Apantisi:1,3,4,5,8,25,26,27,28,32 6. \(Briskei tis grammes poy den xekinoyn me kefalaio gramma\) egrep --color -n '^[^[:upper:]]' lab5ask2*
#Apantisi:2,6,7,9-24,30,31,33,34 # 35,36 7. \(Briskei tis grammes poy periexoyn 3 idioys synexomenoys xaraktires\) egrep --color -n '*(.)\1\1\1*' lab5ask2* #Apantisi:4,6,7,14,16,18,23,24,32 # 33 8. \(Briskei tis grammes poy periexoyn mono arithmoys\(45\) \) egrep --color -n '*^[4][5]&*' lab5ask2* #Apantisi:2 9. \(Briskei tis grammes poy den periexoyn grammata\) egrep --color -n -v [[:alpha:]] lab5ask2* #Apantisi:2,10-14,18-21,23,24,29,30,31,34# 32,36 #TelosAskisis [vkiosses@it.teithe.gr] #! /bin/bash #lab5askisi3.vkiosses "1. (Dimioyrgo 7 arxeia)" # ή να βάλεις " ή να βάλεις ακύρωση ειδ.σηµασίας \( και \) touch f[1-7] #ας μην τα ξανακάνουμε, κάθε φορά που το τρέχουμε "2. (Me tin entoli chmod '???' f? tha allaxo ta dikaiomata) " chmod 757 f1 # ktl. "3. (Oi user kai oi others exoun idia dikaiomata) " ls -l egrep '^.(...)...\1' "4. (Oloi exoyn ta idia akribos dikaiomata) " ls -l f? egrep "^.(.)(.)(.)\1\2\3\1\2\3" "5. (Oloi exoun idia dikaiomata gia write kai execute) " ls -l f? egrep "^..(.)(.).\1\2.\1\2" "6. (Oloi exoun idia dikaiomata gia write) " ls -l f? egrep "^..(.)..\1..\1. " "7. (Oloi exoyn idia dikaiomata gia read kai execute) " ls -l f? egrep "^.(.).(.)\1.\2\1.\2 " "8. (O user kai oi others exoun ta idia dikaiomata gia read kai execute) " ls -l f? egrep "^.(.).(.)...\1.\2" #telosaskisis #! /bin/bash #Askisi4Lab5 "a. (Toylaxiston ta 7 prota grammata toy epithetoy toys apoteloyn kai meros toy username)" cat /etc/passwd egrep --color -i '^[^:]*([^:]{7})[^:]*:x:[^:]*:[^:]*:\1' wc -l "b. (Toylaxiston ta 4 prota grammata toy epithetoy toys kai ta 4 prota grammata toy onomatos einai meros toy username)" cat /etc/passwd egrep -i --color '^[^:]*(.{4})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]* \1' #κύττα σχόλια στο npertsel
"c. (Toylaxiston ta 5 prota grammata toy epithetoy kai 5 prota grammata toy onomatos einai meros toy username)" cat /etc/passwd egrep -i --color '^[^:]*(.{5})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]* \1' #telosaskisis [kdeligia@it.teithe.gr] #LAB4: ASKHSH 3 #kornilia deligianni 1st question egrep ', 5-...1$' tel #ή ask3 ή όπως ονόμασες το αρχειο 2nd question egrep ', [JW]' tel 3rd question egrep '^[A-Z][a-z]{3},' tel 4th question egrep '[^J,W]' tel #OXI λάθος αποτ/σμα 5th question egrep '^[M-Z] ' tel 6th question egrep '^[M-Z][a-z]*, [A-Z][a-z]*, [1-9]\-[1-9]{3}[1-2]$' tel 7th question egrep ', [1-9]\-[1-9]{2}[1,3-9][1,3-9]$' tel #lab5-askisi 3. 1. ls -l f? egrep '^-(...)...\1' 2. ls -l f? egrep '^-(...)\1\1' 3\) ls -l f? egrep '^-.(..).\1.\1' 4. ls -l f? egrep '^-.(.)..\1..\1' 5. ls -l f? egrep '^-(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^-(.).(.)...\1.\2'
#Askisi 4 1. cat /etc/passwd egrep '^[^:]*([^:]]{7})[^:]*:([^:]*:){3}\1[^\]*' -i # 2. cat /etc/passwd egrep -i '^[^:]*([^:]]{4})[^:]*:([^:]*:){3}\1' egrep '^[^:]*([^:]]{4})[^:]*:([^:]*:){3}\1' wc #μην τα κολλάς #το 2 ο egrep θα εξετάζει το όνομα όχι πάλι το επίθετο 3. [npertsel@it.teithe.gr] #! /bin/bash # Work5ask1 ======================== Name : Nikiforos Pertselis npertsel ======================= Ergasthrio 4 Askhsh 3... 1. egrep ', 5-...1$' lab4_3 #Aς εκτελεστούν οι εντολές, Βάλε και -color παντού 2. egrep '[*, ][JW]' lab4_3 3. egrep ' [a-z]{4},' lab4_3 4. egrep -v '[JW]' lab4_3 5. egrep '^[M-Z]' lab4_3 6. egrep '^[M-Z][^,]*,[^,]*,.*[0-9]-[0-9]{3}[12]' lab4_3 7. egrep --color -v '(22)$' lab4_3 #Ergasthrio 5 Askhsh 2 #Pertselis Nikiforos (npertsel) #============================================================== 1. egrep '^[0-9]{0,2}:[0-9][0-9]' intro #χάνεις την γραμμή 28 2.
egrep '^[0-9]{4}-[0-9]{3}-[0-9]{3}$' intro #χάνεις την γραμμή 33 3. egrep '\*\*' intro 4. egrep '^[\*\*]' intro 5. egrep '^[[:upper:]]' intro 6. egrep '^[^[:upper:]]' intro 7. egrep '(.)\1\1' intro 8. egrep '^[0-9]{1,}$' intro 9. grep -v '[a-z]' intro #μπαίνει egrep (αντί grep) στα extended RE #Ergasthrio 5 Askhsh 3 #Pertselis Nikiforos (npertsel) #===================================================================== 1. ls -l f? egrep '^-(...)...\1' 2. ls -l f? egrep '^-(...)\1\1' 3. ls -l f? egrep '^-.(..).\1.\1' 4. ls -l f? egrep '^-.(.)..\1..\1' 5. ls -l f? egrep '^-(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^-(.).(.)...\1.\2' #Ergsthrio 5 Askhsh 4 #Pertselis Nikiforos (npertsel) #======================================================= 1. egrep -i --color '^[^:]*([^:]{7})[^:]*:*:([^:]*:){3}\1[^\]*' /etc/passwd
2. egrep -i --color '^[^:]*(.{4})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]* \1' /etc/passwd #ναι- μόνο που χάνεις κάποιες περιπτώσεις, πάτα ~vassik/work/me4 να δεις τι χάνεις πχ # apapanto:x:1733:1064:papantoniou Antonios:/home/student/x1415/apapanto:/bin/bash #πχ επικαλυπτόμενα, για αυτό να βρεις όλους τους χρήστες που τα 4 πρώτα γράμματα του # επιθέτου περιέχονται στο username (1421), # και από αυτούς να επιλέξεις (2 ο egrep) εκείνους που τα 4 πρώτα γράμματα του ονόματος #περιέχονται στο username, που ειναι όλες οι περιπτωσεις και είναι 39 γραμμές #παρόμοια και στο 3 ο ερώτημα αλλά εκει συνολικά βγαίνουν 14 γραμμές. 3. egrep -i --color '^[^:]*(.{5})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]* \1' /etc/passwd [dstais@it.teithe.gr] Βάζε --color να βλέπεις τι γίνεται Erg4 ask3 1; egrep '5...1$' katalogos 2; egrep ' [JW]' katalogos 3; egrep '^.{4}' katalogos #4 γραμματα και μετά, ΟΧΙ Francis, John, 5-3871 4; egrep '[^JW]' katalogos #ΟΧΙ 5; egrep '^[M-Z]' katalogos 6; egrep '[M-Z].*[12]$' katalogos #το επίθετο είναι στην αρχή της γραμμής 7; egrep '[^2]{2}$' katalogos #χάνεις το 2:Wong, Fred, 4-4123 Erg5 ask2 1 ;egrep '[[:digit:]]:[[:digit:]]' intro #γραμμή 26 η,27 η δεν εχει ώρα 2 ;egrep '[[:digit:]]{4}-[[:digit:]]{3}-[[:digit:]]{3}]' intro #καμία λόγω ] 3 ;egrep '\*\*' intro #βγάζει κατι την 3 η 4 ;egrep '^\*\*' intro#βγάζει κατι την 4 η 5 ;egrep '^[[:upper:]]' intro 6 ;egrep '^[^[:upper:]]' intro 7 ;egrep '(.)\1\1' intro 8 ;egrep ^'[0-9]*'& intro #το * σημαίνει και 0 επανάληψη, άρα έχει αρ. 0-πολλές 9 ;egrep '[^[:alpha:]]' intro #του λες να μην έχει ένα γράμμα Erg5 ask3 1 ;ls -l f? egrep '^.(...)...\1' work 2 ;ls -l f? egrep '^.(...)\1\1' work 3 ;ls -l f? egrep '^..(..).\1.\1' work 4 ;ls -l f? egrep '^..(.)..\1..\1' work 5 ;ls -l f? egrep '^.(.).(.)\1.\2\1.\2' work 6 ;ls -l f? egrep '^.(.).(.)...\1.\2' work με -n βλέπεις τα νούμερα των γραμμών [ksianidi@it.teithe.gr] #Erg4Ask3 #ksianidi 1. Grammes pou periexoun tilefono pou arxizei apo 5 kai teleiwnei se 1: egrep -n --color 5-...1$ ask3
2. Grammes pou periexoun onoma pou arxizei apo J h W: egrep -n --color ', [JW]' ask3 3. Grammes pou periexoun epitheto mikous 4 xaraktirwn: egrep -n --color '^[A-Z][a-z][a-z][a-z],' ask3 4. Grammes pou den periexoun ta grammata J h W: egrep -n --color ^[^JW]*$ ask3 5. Grammes pou periexoun epitheto pou ksekinaei apo M ws Z: egrep -n --color ^[M-Z] ask3 6. Grammes pou periexoun epitheto pou ksekianei apo M ws Z kai ar. tilefonou pou teleinei me 1 h 2: egrep -n --color "^[M-Z].*,.*,.*[12]$" ask3 7. Grammes pou periexoun arithmo tilefwnou pou den teleiwnei se 22: egrep --color "[^2}[^2]$" ask3 Erg5Ask2 #ksianidi 1. grammes pou periexoun ora: egrep --color -n '^[[:digit:]]*:[[:digit:]]*' intro #χάνεις την γραμμή 28 2. grammes pou periexoun tilefoniko noumero: egrep --color -n '*[[:digit:]]{4}-[[:digit:]]{3}-[[:digit:]]{3}*' intro 3. grammes pou periexoun 2 h perissotera sinexomena asterakia: egrep --color -n '*{2,}[*][*]' intro 4. grammes pou ksekinoun me 2 toulaxiston asterakia: egrep --color -n '^{2,}[*][*]' intro 5. grammes pou ksekinoun me kefalaio gramma: egrep --color -n '^[[:upper:]]' intro 6. grammes pou den ksekinoun me kefalaio gramma: egrep --color -n '^[^[:upper:]]' intro 7. grammes pou periexoun 3 idious xaraktires sunexomenous: egrep --color -n '*(.)\1\1\1*' intro 8. grammes pou periexoun mono arithmous: egrep --color -n '*^[4][5]&*' intro 9. grammes poy den periexoyn grammata #κενό πριν το 9 egrep --color -n -v [[:alpha:]] intro #Erg5 Ask3
#ksianidi 1. O user kai oi others exoun akrivos ta idia dikaiomata: ls -l f? egrep '^.(...)...\1' 2. O user, to group kai oi other exoun akrivos ta idia dikaiomata: ls -l f? egrep '^.(...)\1\1' 3. O user, to group kai oi other exoun ta idia dikaimata gia write kai execute: ls -l f? egrep '^..(..).\1.\1' 4. O user, to group kai oi other exoun ta idia dikaimata gia write: ls -l f? egrep '^..(.)..\1..\1' 5. O user, to group kai oi other exoun ta idia dikaimata gia read kai execute: ls -l f? egrep '^.(.).(.)\1.\2\1.\2' 6. O user kai oi others exoun ta idia dikaiomata gia read kai execute: ls -l f? egrep '^.(.).(.)...\1.\2' [ckaripia@it.teithe.gr] #lab4 ask3 1. egrep '[A-Z].+,.+, 5.+1$' tel 2. egrep '^[^,]+, [JW]' tel 3. egrep '^.[^,]{3},' tel 4. egrep '^[^W J].*, {^W J].*,' tel #κάντο να βγάζει την 5 η και 6 η γραμμή 5. egrep '^[M-Z]' tel 6. egrep '^[^W J].*., [^W J].*,,*[12]$' tel # κάντο να βγάζει την 5 η γραμμή 7. egrep '.*[^2][2]$' tel #κάντο να βγάζει την 1 η, 2 η και 6 η γραμμή Oταν στην egrep δεν βάζουμε όνομα αρχείου τότε περιμένει να πληκτρολογήσουμε κείμενο. #lab5 ask2 1. egrep '[0-9]?:[0-9]?' intro #οι γραμμές 25,26,27 δεν εχουν ώρα 2. egrep '[0-9]+-[0-9]+-[0-9]' intro 3. egrep '[*][*]+' intro 4. egrep '^[*][*]?' intro 5. egrep '^[A-Z].*' intro #κάνε καλύτερα χρήση του [[:upper:]] 6.
egrep '^[^A-Z]' intro #κάνε καλύτερα χρήση του [[:upper:]] 7. egrep '([0-9])\1\1' intro#3 ίδιοι μπορεί να είναι ότι ναναι (.) πχ. * γράμμα ή αριθμός 8. egrep '^[0-9]+$' intro 9. egrep '^[^A-Za-z]+$' intro #χάνεις την 32 (κενή ίσως) #lab 5 ask3 1. ls -l f? egrep '^-(...)...\1'#να βγει f1,f2,f3, f7 2. ls- l f? egrep '^-(...)\1\1' 3. ls -l f? egrep '^-.(..).\1.\1' #να βγει f5, f7 4. ls -l f? egrep '^-.(.)..\1..\1.' 5. ls -l f? egrep '^-(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^-(.).(.)...\1.\2' #lab5 ask4 1. cat /etc/passwd egrep '^[^:]*(.{7})[^:]*:x:[0-9]+:[0-9]+:.*\1.*' -i#ξεκόλλατο,899 γρ 2. cat /etc/passwd egrep '^[^:]*(.{4})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]* \1' -i --color#39 γρ. 3. cat /etc/passwd egrep '^[^:]*(.{5})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]* \1' -i #14 γρ. Βάζετε την -color και σε μεγάλα αρχεία και την n (νούμερο γραμμής) apipinik@it.teithe.gr ΚΑΙ ΟΙ 3 ΑΣΚΗΣΕΙΣ ΟΚ #! /bin/bash #LAB4 : ASKHSH3 #apipinik "1st question" egrep --color ', 5-...1$' tel "2nd question" egrep --color ', [JW]' tel "3rd question" egrep --color '^[^ ]{4}, ' tel "4th question" egrep --color '[JW]' -v tel
"5th question" egrep --color '^[M-Z]' tel "6th question" egrep --color '^[M-Z].+[12]$' tel "7th question" egrep --color '22$' -v tel #! /bin/bash #LAB5: ASKHSH 2 #apipinik "Question 1" egrep --color '[0-9]{0,2}:[0-9][0-9]' intro egrep -v '[0-9][0-9]{0,2}:[0-9][0-9][0-9]' "Question 2" egrep --color '...-...-...' intro "Question 3" egrep --color '\*\*+' intro "Question 4" egrep --color '^\*\*' intro "Question 5" egrep --color '^[[:upper:]]' intro "Question 6" egrep --color '^[^[:upper:]]' intro "Question 7" egrep --color '*(.)\1\1\1*' intro "Question 8" egrep --color '^[0-9]+$' intro "Question 9" egrep --color -i '[a-z]' intro -v #! /bin/bash #LAB5: ASKHSH3 #apipinik "Question 1" ls -l f? egrep '^.(...)...\1' "Question 2" ls -l f? egrep '^.(...)\1\1'
"Question 3" ls -l f? egrep '^..(..).\1.\1' "Question 4" ls -l f? egrep '^..(.)..\1..\1.' "Question 5" ls -l f? egrep '^.(.).(.)\1.\2\1.\2' "Question 6" ls -l f? egrep '^.(.).(.)...\1.\2' [vlainidi@it.teithe.gr] #! /bin/bash #lainidis victor - Lab4Ask3 date "1" # "grep '5.*.1' tel --color" ΠΟΛΥ ΩΡΑΙΟ αλλά μην κουράζεσαι τζάμπα egrep '5.*.1$' tel -color #Η ΕΝΤΟΛΗ ΑΡΚΕΙ, και βάζε πάντα egrep νασαι μέσα #ΕΔΩ θελει $, αλλιώς θα βγει και το Jones, Tom, 5-4122 "2" grep "., [JW]" tel --color egrep "., [JW]" tel -color "3" "grep '...' tel --color" egrep '...' tel color # Αυτοι οι 4 χαρ/ρες μπορεί ναναι παντού κύττα στον apipinik "4" "grep -v [WJ] tel --color" egrep -v [WJ] tel --color "5" "^'[M-Z]' tel --color" egrep ^'[M-Z]' tel --color "6" grep ^'[M-Z]., [12]$' tel --color "7" "grep -v '22' tel --color" egrep -v '22' tel --color #lainidis victor Lab5Ask2
"1" # " grep [**:**] intro " μην κουράζεσαι τζάμπα, μόνο την εντολή egrep [**:**] intro # Προσοχή το * είναι για επαναλήψεις κύττα apipinik "2" "grep '2...-' intro --color" egrep '2...-' intro --color "3" "grep '**' intro --color" egrep '**' intro color # Προσοχή το * είναι για επαναλήψεις κύττα apipinik "4" κύττα στον apipinik "5" " grep '[[:upper:]]' intro --color" egrep '[[:upper:]]' intro --color "6" "egrep '^[[:lower:]]' intro --color" #δεν είναι μόνο τα πεζά,είναι αριθμοί,κενά egrep '^[[:lower:]]' intro --color #7,8,9 κύττα στον apipinik Κάνε και την Lab5Ask3 #lainidis victor Lab5Ask4 "1" "egrep -i '^... :[a-z]{7} ' /etc/passwd --color" egrep -i '^... :[a-z]{7} ' /etc/passwd color #ΟΧΙ βγάζεις όλες τις γραμμές. "2" "egrep -i '^... :[a-z]{4} [a-z]{4}' /etc/passwd --color" egrep -i '^... :[a-z]{4} [a-z]{4}' /etc/passwd color #ΟΧΙ βγάζεις όλες τις γραμμές. aapostol@aetos.it.teithe.gr #Erg4ask3 - LAB4ASK3 #aapostol 1. deixnei grammes pou exoyn mesa arithmo tilefwnoy o opoios 3ekinaei apo 5 kai teleiwnei se 1: egrep -n --color 5-...1$ ask3 2.\( grammes poy exoyn onomata poy 3ekinan apo J h W\): egrep -n --color ', [JW]' ask3
3. \(/grammes poy exoyn mea eponimo poy exei 4 xarakthres\): egrep -n --color '^[A-Z][a-z][a-z][a-z],' ask3 4. grammes poy den exoun mesa to gramma J h W: egrep -n --color ^[^JW]*$ ask3 5. deixnei grammes poy to epitheto 3ekinaei apo to gramma M ews Z: egrep -n --color ^[M-Z] ask3 6. deixnei grammes pou to epitheto arxizei me M ews Z kai arithmo tilefonou pou sto telos exei me 1 h 2: egrep -n --color "^[M-Z].*,.*,.*[12]$" ask3 7. grammes poy den teleiwnei o ari8mos tilefwnou se 22: egrep --color "[^2}[^2]$" ask3 Eίναι δύσκολο να διορθωθούν αυτές οι γραμμές στο Unix, πως το έγραψες με WORD? Nα τα γράφεις στο SHELL και μόνο και εντολές ΟΚ? Δεν είναι κακή ιδέα ΟΙ ΓΡΑΜΜΕΣ, όμως πάντα με και νάναι γραμμές ισομεγέθεις (copy). # Erg5Ask2 LAB5ASK2 #aapostol 1.deixnei tis grammes poy exoun mesa wra: egrep --color -n '^[[:digit:]]*:[[:digit:]]*' intro #Xάνεις την γραμμή 28 που δεν ξεκινά με ώρα έχει ενδιάμεσα ώρα #28:This is time 23:03 OK 2.deixnei tis grammes pou exoyn mesa noumero tilefwnou: egrep --color -n '*[[:digit:]]{4}-[[:digit:]]{3}-[[:digit:]]{3}*' intro 3.deixnei tis grammes pou pou exoyn mesa 2 H pio polla sinexomena asterakia: egrep --color -n '*{2,}[*][*]' intro 4.deixnei tis grammes pou arxizoun to ligotero 2 asterakia: egrep --color -n '^{2,}[*][*]' intro 5.deixnei tis grammes pou arxizoyn me kefalaio gramma: egrep --color -n '^[[:upper:]]' intro 6.deixnei tis grammes pou den arxizoun me kefalaio gramma: egrep --color -n '^[^[:upper:]]' intro 7.deixnei tis grammes pou pou exoun mesa trieis idious xaraktires sunexomenous: egrep --color -n '*(.)\1\1\1*' intro
8.deixnei tis grammes pou exoun mesa tous mono noumera: egrep --color -n '*^[4][5]&*' intro 9.deixnei tis grammes poy den exoyn mesa grammata egrep --color -n -v [[:alpha:]] ~ intro #Erg5 Ask3 #aapostol 1. ls -l f? egrep '^.(...)...\1' 2. ls -l f? egrep '^.(...)\1\1' 3. ls -l f? egrep '^..(..).\1.\1' 4. ls -l f? egrep '^..(.)..\1..\1' 5. ls -l f? egrep '^.(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^.(.).(.)...\1.\2' vzafeiri@aetos.it.teithe.gr #!/bin/bash #Ask3Erg4 1. egrep --color "^.*,.*, 5.*1$" tel 2. egrep --color ', [JW]' tel 3. egrep --color '^[[:alpha:]]{4},' tel 4. egrep --color '^*[^JW]*$' tel # αυτό το ξέμπαρκο * στα χαλάει 5. egrep --color '^[M-Z]' tel 6. egrep --color '^[M-Z].*[12]$' tel 7. egrep --color '[^2}[^2]$' tel # προσοχή είναι ] και όχι } και παίρνεις την # Wong, Fred, 4-4123 #telosaskisis #Erg5Ask3 1. ls -l f? egrep '^.(...)...\1' 2. ls -l f? egrep '^.(...)\1\1' 3.
ls -l f? egrep '^..(..).\1.\1' 4. ls -l f? egrep '^..(.)..\1..\1' 5. ls -l f? egrep '^.(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^.(.).(.)...\1.\2' #TelosAskisis #Erg5ask4 1. egrep i '^[^:]*(.{7})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]*' /etc/passwd #χωρίς το i βρισκεις μόνο 3 γραμμές αντί 899 δηλ περίπου 0.03/10 2. egrep '^[^:]*(.{4})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]*[^:]*\1' /etc/passwd i 3. egrep '^[^:]*(.{5})[^:]*:x:[0-9]+:[0-9]+:\1[^ ]*[^:]*\1' /etc/passwd i #Καλή προσπάθεια, η λύση όμως, είναι στο τελος. #TelosAskisis [igougoul@it.teithe.gr] #! /bin/bash #ergasia 5h Name: $USER keimeno=tel #========erg4 asksisi 3===================== 1. egrep ', 5-...1$' $keimeno 2. egrep ', [JW]' $keimeno 3. cat $keimeno egrep --color '^[^,]{4},' 4. cat $keimeno egrep --color '^[^JW]' #οχι μονο στην αρχή παντού: '^[^JW]*$' ή [JW] -v 5. cat $keimeno egrep --color '^[M-Z]' 6. cat $keimeno egrep --color '^[M-Z].*[12]$' 7. cat $keimeno egrep --color [^22]$ #========erg5 askisi 2================== keimenoerg5ask2=intro 1. egrep -n --color '[0-9]*:[0-9]*' $keimenoerg5ask2 #σου βγαίνουν επιπλέον οι γραμμές 25,26,27
2. cat $keimenoerg5ask2 egrep -n --color '[0-9]*-[0-9]*-[0-9]*' 3. cat $keimenoerg5ask2 egrep --color '([*])\1\1.' 4. cat $keimenoerg5ask2 egrep --color '^[*]' 5. cat $keimenoerg5ask2 egrep --color '^[A-ZΞ-Ξ]' #οχι ελλ/κά '^[[:upper:]]' 6. cat $keimenoerg5ask2 egrep --color '^[a-z]' # '^[^[:upper:]]' 7. cat $keimenoerg5ask2 egrep --color '(.)\1\1' 8. cat $keimenoerg5ask2 egrep --color '^[[:digit:]]+$',όχι μονο το 1 ο γράμμα,ολο 9. egrep --color -v [[:alpha:]] $keimenoerg5ask2 #===========erg5 askisi3=============== 1. ls -l f? egrep '^-(...)...\1' 2. ls -l f? egrep '^-(...)\1\1' 3. ls -l f? egrep '^-.(..).\1.\1' 4. ls -l f? egrep '^-.(.).\1..\1' 5. ls -l f? egrep '^-(.).(.)\1.\2\1.\2' 6. ls -l f? egrep '^-(.).(.)...\1.\2' [ktoumpid@it.teithe.gr] #LAB4: ASKISI 3 # ktoumpid egrep --color '5-.*1$' tel #να ξεχωρίζουν οι απαντήσεις egrep --color '^.*, [JW]' tel egrep --color '^[a-za-z]{4},' tel egrep --color '^[^JW]*$' tel egrep --color '^[M-Z].*, ' tel egrep --color '^[M-Z].*,.*[12]$' tel egrep --color -v '22$' tel
#LAB5: ASKISI 2 #ktoumpid #ΚΥΤΤΑ ΟΛΗ ΤΗΝ ΑΣΚΗΣΗ λυμένη πιο πάνω πχ από apipinik #ΠΡΟΣΟΧΗ ΝΑ ΜΗΝ ΑΦΗΝΕΙΣ ΚΕΝΑ αν δεν το θες egrep --color '([0-9]{2}):\1 ' intro # OXI έτσι ζητάς π.χ. 13:13 egrep --color '[0-9\-]{12} ' intro # OXI -12 χαρακτήρες ζητάς αλλά θελουμε σειρά egrep --color '\*{2,}' intrο egrep --color '^\*{,2}' intro egrep --color '^[A-Z]' intro #βάζε [[:upper:]] egrep --color '^[^A-Z]' intro #βάζε [^[:upper:]] egrep --color '\b(.)\1{2}\b' #δεν δουλεύει!!! egrep --color '^[0-9]+$' intro egrep --color '^[^[:alpha:]]+$' intro #χάνεις την κενή νουμ. 29,32 #LAB5: ASKISI 3 # ktoumpid # min to kanete auto. xrisimopoiiste find #KANΤΟ με find ls -l f[1-7] egrep --color '(.{3}).{3}\1' ls -l f[1-7] egrep --color '(.{3})\1\1' ls -l f[1-7] egrep --color '^-.(.{2}).\1.\1' ls -l f[1-7] egrep --color '^.{2}(.).{2}\1.{2}\1.' ls -l f[1-7] egrep --color '(.).(.)\1.\2\1.\2' ls -l f[1-7] egrep --color '^-(.).(.).{3}\1.\2' [splatiot@it.teithe.gr] 1. egrep '^[^,]*,\ [^,]*,\ 5-...1$' tel -color #βαζε χρώμα και σιγά σιγα να τα βλέπεις, για όλη την γραμμή θέλει ^ και $ 2. #egrep '^[JW]' tel #ΟΝΟΜΑ όχι ΕΠΙΘΕΤΟ egrep --color ', [JW]' tel 3. egrep '^[^,]{4},' tel 4.
egrep '^[^JW]+$' tel 5. egrep '^[M-Z]' tel 6. egrep '^[M-Z][^,]*,\ [^,]*,\ [0-9]-[0-9]{3}[12]' tel 7. egrep '[^22]$' tel Βάζε --color να τα βλέπεις 1. #egrep '[0-9]{2}:[0-9]{2}' intro # βγάζεις και την 26,27 γραμμή egrep '^[0-9]{2}:[0-9]{2}$ [ ][0-9]{2}:[0-9]{2}[ ]' intro 2. egrep '[0-9]*-[0-9]*-[0-9]*' intro 3. egrep -n '\*\*' intro 4. egrep -n '^\*\*' intro 5. egrep '^[[:upper:]]' intro 6. egrep '^[^[:upper:]]' intro 7. egrep '(.)\1\1' intro 8. egrep '^[[:digit:]]+$' intro 9. #egrep '^[^[:alpha:]]+$' intro #χάνεις την κενή νουμ. 29 egrep '[[:alpha:]]' intro v --color 1. ls -l f[1-7] egrep '^-(...)...\1' 2. ls -l f[1-7] egrep '^-(...)\1\1' 3. ls -l f[1-7] egrep '^-.(..).\1.\1' 4. ls -l f[1-7] egrep '^-.(.)..\1..\1.' 5. ls -l f[1-7] egrep '^-(.).(.)\1.\2\1.\2' 6. ls -l f[1-7] egrep '^-(.).(.)...\1.\2' 1. egrep -i '^[^:]*(...)[^:]*:x:[^:]*:[^:]*:\1[^:]*\ [^:]*:' /etc/passwd 2. egrep -i '^[^:]*(...)[^:]*(...)[^:]*:x:[^:]*:[^:]*:\2[^:]*\ \1[^:]*:' /etc/passwd # ΧΑΝΕΙΣ ΤΑ ΕΠΙΚΑΛΥΠΤΟΜΕΝΑ, λύση πιο κάτω, Αλλά ΕΙΝΑΙ ΟΚ χωρις επ/να echο 3. egrep -i '^[^:]*(...)[^:]*(...)[^:]*:x:[^:]*:[^:]*:\2[^:]*\ \1[^:]*:' /etc/passwd #ΛΥΣΗ ΠΙΟ ΚΑΤΩ
[ngrammen@it.teithe.gr] #!/bin/bash #Προσοχή /bin/bash #LAB4:ASKHSH3 # $USER 1st question egrep -n --color ', 5-...1$' tel 2nd question egrep -n --color ', [JW]' tel 3rd question egrep -n --color '^[A-Z][a-z]{3},' tel 4th question egrep -n --color '^[JW]' -v tel #γενικά στην γραμμή, όχι μόνο στην αρχή της 5th question egrep --color '^[M-Z]' tel 6th question egrep --color '^[M-Z].*,.*,.*[12]$' tel 7th question egrep -n --color [^2]$ tel #! /bin/bash #LAB5: ASKHSH2 #ngrmamen Question1 egrep --color -n '[0-9]{1,2}:[0-9]{2}' intro egrep -v '[0-9][0-9]{0,2}:[0-9][0-9][0-9]' egrep '^[0-9]{2}:[0-9]{2}$ [ ][0-9]{2}:[0-9]{2}[ ]' intro Question2 egrep --color -n '...-...-...' intro Question3 egrep --color -n '^.*\*\*' intro Question4 egrep --color -n '^\*\*.*' intro Question5 egrep --color -n '^[A-Z]' intro #βάζε [[:upper:]] Question6
egrep --color -n '^[^A-Z]' intro #βάζε [^[:upper:]] Question7 egrep --color -n '(.)\1\1' intro Question8 egrep --color -n '^[0-9]+$' intro Question9 egrep --color -n '[a-z]' intro -v #! /bin/bash #lab5:ask3 Question1 ls -l f? egrep '.(...)...\1' Question2 ls -l f? egrep '.(...)\1\1' Question3 ls -l f? egrep '..(..).\1.\1' Question4 ls -l f? egrep '^..(.)..\1..\1.' #ΟΧΙ Question5 ls -l f? egrep '.(.).(.)\1.\2.\1.\2' #ΟΧΙ Question6 ls -l f? egrep '^.(.).(.)...\1.\2' #ΟΧΙ #! /bin/bash #Askisi4 Ergastirio5 Question1 egrep -i '^[^:]*([^:]{7})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd --color Question2 egrep -i '^[^:]*([^:]{4})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd --color #Αυτο δίνει το 1 ο κομμάτι δηλ. τα 4 πρώτα γράμματα του επιθέτου μέρος του username Question3 egrep -i '^[^:]*([^:]{5})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd egrep -i '^[^:]*([^:]{5})[^:]*:x:[^:]*:[^:]*:[^:,]* \1'
Λύση της 4 ης άσκησης του 5 ου εργ/ρίου ΒΚ ΑΣΚΗΣΗ 4 η Ελέγχοντας το αρχείο /etc/passwd και κάνοντας χρήση της εντολής egrep (χρησιμοποιείστε την επιλογή -i για να μην γίνεται διάκριση μεταξύ κεφαλαίων και πεζών) ΔΟΜΗ /etc/passwd Exει 7 πεδία και 6 : διαχωριστικά Username:x:Userid:Groupid:Epitheto Onoma:Homedirectory:Shell 1 o :x:3 o :4 o :5 o :6 o :7 o Oλα είναι πιθανά, δηλ. μπορεί κάποιο πεδίο να είναι και άδειο Ισχύει ότι το 2 ο πεδίο είναι πάντα x Στο 5 ο πεδίο Ονοματεπώνυμο μπορεί να έχει μόνο ένα string π.χ. :games: ή ναχει και, π.χ. :Tasi Loran,,,: Στο 5 ο πεδίο το επίθετο χωρίζεται από το όνομα με ένα κενό Username:x:Userid:Groupid:Epitheto Onoma:Homedirectory:Shell 1 o :x:3 o :4 o :5 o :6 o :7 o Οι τρόποι επίλυσης με πεδία είναι πολλοί: Α.Ενας τρόπος είναι να κάνω match όλη την γραμμή από την αρχή ^ μέχρι το τέλος $ ΔΕΝ ΠΡΟΤΕΙΝΕΤΑΙ egrep -i '^.*:.*:.*:.*:.*:.*:.*$' /etc/passwd --color ή egrep -i '^(.*:){6}.*$' /etc/passwd --color που σημαίνει AN πχ μου ζητήσει επώνυμο από k egrep -i '^.*:.*:.*:.*:k.*:.*:.*$' /etc/passwd --color B.Αλλος τρόπος είναι να κάνω match την γραμμή μέχρι εκει που ζητά, με χρήση του [^: ]* ΠΡΟΤΕΙΝΕΤΑΙ Δηλ. αντι να βάλω.* ενας (οποιος ναναι) χαρακτήρας που επαναλαμβάνεται 0 πολλές φορές Θα βάλω [^:]* ενας χαρακτήρας που δεν είναι : και επαναλαμβάνεται 0 πολλές φορές Έτσι τώρα πάω με ασφάλεια, και δεν χρειάζεται να πάω μέχρι το τέλος AN πχ μου ζητήσει επώνυμο από k
egrep -i '^[^:]*:[^:]*:[^:]*:[^:]*:k' /etc/passwd --color ή egrep -i '^([^:]*:){4}k' /etc/passwd --color το καλό εδώ είναι ότι με χρώμα βλέπω τι γίνεται katop:x:1168:1000:katopodis:/home/staff/it/katop:/bin/bash Ετσι εύκολα πιάνω όλα τα πεδία στη αρχή τους για userid δίνω '^([^:]*:){2}' για grouprid δίνω '^([^:]*:){3}' για eπίθετο δίνω '^([^:]*:){4}' για homedir δίνω '^([^:]*:){5}' για shell δίνω '^([^:]*:){6}' 4a) Τουλάχιστον τα 7 πρώτα γράμματα του επιθέτου τους αποτελούν μέρος και του username τους Apantisi 1 egrep -i '^[^:]*([^:]{7})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd --color Aυτό µε τελευταία ενηµέρωση του /etc/passwd στις 30/03/2016 δίνει 899 γραµµές όπως η mtaipale:x:1368:1101:taipale Meri:/home/student/erasmus/mtaipale:/bin/bash 4b) Τουλάχιστον τα 4 πρώτα γράμματα του επιθέτου τους και τα 4 πρώτα γράμματα του ονόματός τους αποτελούν μέρος και του username τους Όταν ζητάει ΚΑΙ μπορούμε να το κάνουμε με pipe δηλ. egrep -i 'pattern1' /etc/passwd egrep -i 'pattern2' pattern1: τα 4 πρώτα γράμματα του επιθέτου αποτελούν μέρος και του username τους (1422 γραµµές) egrep -i '^[^:]*([^:]{4})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd --color pattern2: τα 4 πρώτα γράμματα του ονόματός αποτελούν μέρος και του username τους (106 γραµµές) egrep -i '^[^:]*([^:]{4})[^:]*:x:[^:]*:[^:]*:[^:,]* \1' /etc/passwd --color και Εδώ το ΚΕΝΟ σηματοδοτεί την έναρξη του ονόματος Apantisi 2 egrep -i'^[^:]*([^:]{4})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd egrep -i'^[^:]*([^:]{4})[^:]*:x:[^:]*:[^:]*:[^:,]*\1' Aυτό µε τελευταία ενηµέρωση του /etc/passwd στις 30/03/2016 δίνει 39 γραµµές όπως η ttheodor:x:2006:1066:theodoropoulos Theodoros:/home/student/x1516/ttheodor:/bin/bash
4c) Τουλάχιστον τα 5 πρώτα γράμματα του επιθέτου τους και τα 5 πρώτα γράμματα του ονόματός τους αποτελούν μέρος και του username τους Ίδιο με πριν αλλά με 5 γράμματ αντί 4 Apantisi 3 egrep -i '^[^:]*([^:]{5})[^:]*:x:[^:]*:[^:]*:\1' /etc/passwd egrep -i '^[^:]*([^:]{5})[^:]*:x:[^:]*:[^:]*:[^:,]* \1' Aυτό µε τελευταία ενηµέρωση του /etc/passwd στις 30/03/2016 δίνει 14 γραµµές όπως η camad15:x:2674:1000:camad2015 CAMAD2015:/home/staff/it/camad15:/bin/bash