Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

Regex mit grep

Diskussion: Regex mit grep im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Hi, ich versuche geraden die Aufgaben von tldp zu lösen. Hab da so meine Probleme zumal es ja keine ...

Antwort
Alt 24.03.09, 13:37   #1 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard Regex mit grep

Anzeige

Hi,

ich versuche geraden die Aufgaben von tldp zu lösen. Hab da so meine Probleme zumal es ja keine Lösungen gibt.

1) Display a list of all the users on your system who log in with the Bash shell as a default.

Code:
egrep :/bin/bash$ /etc/passwd
2) From the /etc/group directory, display all lines starting with the string "daemon".
Code:
egrep ^daemon /etc/group
3) Print all the lines from the same file that don't contain the string.
Dazu müsste man die character sequence "daemon" doch irgendie groupen und dann die group dann negieren oder so. Aber das krieg ich nicht auf die Reihe. Problem ist wohl auch in meiner Version, dass ^ sowohl für Negation als auch für den Zeilenanfang stehen kann.

4) Display localhost information from the /etc/hosts file, display the line number(s) matching the search string and count the number of occurrences of the string.
Teil 1 geht noch:
Code:
grep -n localhost /etc/hosts
Aber wie soll das mit der Anzahl mit der das Wort "localhost" funktionieren?

5) Display a list of /usr/share/doc subdirectories containing information about shells.
Hier weiss ich nicht ganz wie das gemeint ist. Ich kann natürlich mit egrep -r rekursiv duch /usr/share/doc durchlaufen und krieg dann jedes file, das das Wort "shell" enhält.

6) How many README files do these subdirectories contain? Don't count anything in the form of "README.a_string".
Seh ich das richtig, dass hier mit find gearbeitet werden soll?
Code:
find /usr/share/doc -regex .*README
Hier scheitere ich aber wieder an der negierung von ".a_string". Einen . kann ich ich mit \. escapen, sodass der . gemeint ist und nicht "any character" oder?

7) Make a list of files in your home directory that were changed less that 10 hours ago, using grep, but leave out directories.
Ist mir schleierhaft, wie das mit grep gehen soll ohne find -ctime zu benutzen.

Erstmal soweit. Wäre nett wenn mir da jemand helfen könnte!

ciao
serow
Serow ist offline   Mit Zitat antworten
Alt 24.03.09, 13:42   #2 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

3) man grep. Speziell der Schalter "-v" sollte helfen.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.03.09, 13:47   #3 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Okay also

3) Print all the lines from the same file that don't contain the string.
Dazu müsste man die character sequence "daemon" doch irgendie groupen und dann die group dann negieren oder so. Aber das krieg ich nicht auf die Reihe. Problem ist wohl auch in meiner Version, dass ^ sowohl für Negation als auch für den Zeilenanfang stehen kann.
Code:
egrep -v .*daemon.* /etc/group
Ist das nicht auch über regex selbst zu lösen?

6) How many README files do these subdirectories contain? Don't count anything in the form of "README.a_string".
Das würde ich dann so lösen:
Code:
find /usr/share/doc -name README | egrep -v .*README\..*
Gibts bessere Methoden?

Zum Rest fällt mir nix ein ...


cu
serow
Serow ist offline   Mit Zitat antworten
Alt 24.03.09, 13:53   #4 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: Pentium Ixeno Leistung: Pentium I
xeno eine Nachricht über ICQ schicken
Likes: 76
Standard

Zitat:
Original von Serow
6) How many README files do these subdirectories contain? Don't count anything in the form of "README.a_string".
Das würde ich dann so lösen:
Code:
find /usr/share/doc -name README | egrep -v .*README\..*
Gibts bessere Methoden?

Zum Rest fällt mir nix ein ...


cu
serow
das zeigt auch verzeichnisse mit diesem namen an, also find /foo/bar -type f -name "README".
da "how many" gefragt ist, solltest du noch ein wc -l dranhängen, also:
find /foo/bar -type f -name "README" | wc -l

hab leider grad nicht die zeit mir die anderen sachen anzuschauen, bin beim kunden
xeno ist offline   Mit Zitat antworten
Alt 24.03.09, 13:55   #5 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Immer stören diese Kunden einen bei den wirklich wichtigen Sachen Naja vllt heute Abend..

cu
serow
Serow ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » Regex mit grep
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex Look-around assertions Virus Code Kitchen 4 30.09.09 18:10
php regex mauralix (Web-) Design und webbasierte Sprachen 6 31.03.07 20:35
Regex in C++ jesus Code Kitchen 4 17.01.07 18:15
logische operation mit grep sfil Linux/UNIX 12 14.01.07 14:05
REGEX: ich suche eine RegEx boppy (Web-) Design und webbasierte Sprachen 3 11.03.05 17:09


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61