suchen mit cat
- sommernacht
- Beiträge: 13
- Registriert: 16.09.2021 09:11:47
suchen mit cat
Hallo
wenn ich mit
cat Textdatei.txt | grep "TURN OFF" | wc
eine datei durchsuche
gibt er mir aus wie viele TURN OFF es in der Textdatei gibt.
wenn die Textdatei nun so geschrieben ist
# TURN OFF
TURN OFF
# TURN OFF
TURN OFF
# TURN OFF
# TURN OFF
TURN OFF
wie kann ich nur nach den TURN OFF suche die zu beginn kein Hashtag-Symbol # haben oder umgekehrt
wenn ich mit
cat Textdatei.txt | grep "TURN OFF" | wc
eine datei durchsuche
gibt er mir aus wie viele TURN OFF es in der Textdatei gibt.
wenn die Textdatei nun so geschrieben ist
# TURN OFF
TURN OFF
# TURN OFF
TURN OFF
# TURN OFF
# TURN OFF
TURN OFF
wie kann ich nur nach den TURN OFF suche die zu beginn kein Hashtag-Symbol # haben oder umgekehrt
my cat has escaped
Re: suchen mit cat
Nutze das Caret Zeichen:
Code: Alles auswählen
grep „^TURN OFF“
Re: suchen mit cat
leicht offtopic:
Zu "cat | grep ..." gibts den Spruch "useless use of cat" (gilt auch bei vielen anderen Konstrukten der Art "cat | irgendwas").
grep kann nämlich direkt benutzt werden: "grep suchmuster dateiname"
Zu "cat | grep ..." gibts den Spruch "useless use of cat" (gilt auch bei vielen anderen Konstrukten der Art "cat | irgendwas").
grep kann nämlich direkt benutzt werden: "grep suchmuster dateiname"
- sommernacht
- Beiträge: 13
- Registriert: 16.09.2021 09:11:47
Re: suchen mit cat
my cat has escaped
Re: suchen mit cat
@sommernacht:
Solche Threads machen Spaß! Du präsentierst eine Aufgabenstellung, zeigst, dass du dir darüber Gedanken gemacht hast und stellst basierend auf deinen Überlegungen eine konkrete Frage. Gerne mehr davon!
https://www.netmeister.org/misc/useless_use.pdf
Über "useless use of cat" solltest du dir aber im Moment noch nicht zu viele Gedanken machen. Das Thema im Hinterkopf zu haben ist gut, aber wenn es für dich mit cat einfacher ist, dann nutze es ruhig.
Solche Threads machen Spaß! Du präsentierst eine Aufgabenstellung, zeigst, dass du dir darüber Gedanken gemacht hast und stellst basierend auf deinen Überlegungen eine konkrete Frage. Gerne mehr davon!
Eher das hier :
https://www.netmeister.org/misc/useless_use.pdf
Über "useless use of cat" solltest du dir aber im Moment noch nicht zu viele Gedanken machen. Das Thema im Hinterkopf zu haben ist gut, aber wenn es für dich mit cat einfacher ist, dann nutze es ruhig.
Re: suchen mit cat
hikaru hat geschrieben:18.09.2021 23:51:27@sommernacht:
Solche Threads machen Spaß! Du präsentierst eine Aufgabenstellung, zeigst, dass du dir darüber Gedanken gemacht hast und stellst basierend auf deinen Überlegungen eine konkrete Frage. Gerne mehr davon!
Oder das hier: https://www.ulm.ccc.de/ccc/chaosseminar ... rformance/hikaru hat geschrieben:18.09.2021 23:51:27Eher das hier :
https://www.netmeister.org/misc/useless_use.pdf
(Im Gegensatz zu den meisten finde ich diese ``useless'' uses of cat gar nicht schlimm, sondern recht natuerlich und darum sinnvoll.)
Edit: Und hier noch die Useful uses of cat:
https://www.in-ulm.de/~mascheck/various/uuoc/
Use ed once in a while!
Re: suchen mit cat
Da gibt's aber keine lustigen Katzenbilder.Meillo hat geschrieben:19.09.2021 09:10:51Oder das hier: https://www.ulm.ccc.de/ccc/chaosseminar ... rformance/
Re: suchen mit cat
Schlimm find ich es auch nicht, aber nach meiner Erfahrung hat sich bei einigen Leuten nen Knoten im Gehirn gelöst, als sie merkten, dass die Pipe auch nur ein -zusätzliches- Mittel zur Dateneingabe ist. Wenn auch ein sehr cooles
Ich hatte immer wieder Leute, bei denen sich "programm PIPE ... und was nun?" festgefangen hat. Das ging mal soweit, dass ich mehrere Tage gebraucht hab, jemanden sein "cat datei.txt | cat" abzugewöhnen. Der Typ war nicht doof, bei dem hatte sich nur das Muster mit der Pipe so festgefressen, dass es richtig Arbeit war, das wieder zu fixen.
Die Pipe ist superwichtig und ganz klar die beste Erfindung seit geschnitten Brot, aber sie nutzt einem Nichts, wenn man die Möglichkeiten der Endpunkte nicht kennt. Wichtig ist daher, dass nen Anfänger lernt, die Manpages zu nutzen, man sich immer mal wieder vergewissert, was KANN das Progrämmchen alles? Manchmal kommt Neues dazu, manchmal vergisst man was, manchmal kennt man was nicht, weil man genau dieses eine Feature noch nie gebraucht hat und man es deswegen bisher nicht auf dem Schirm hat, etc.
Ist immer wieder ne schöne Überraschung, wenn man bei Tools die man schon gefühlte 20 Jahre nutzt was Neues entdeckt
... genug Offtopic und damit der Thread nochmal was sinnvolles zu grep hat:
Ein paar der Parameter die man bei grep unbedingt kennen sollte: i und v
oder besser (das braucht man im echten Adminleben nämlich häufiger):
bzw das da
Edit: fehlendes * eingefügt, Danke fürs Aufpassen @Meillo
Edit2: noch nen : eingefügt, nochmal Danke @Meillo
Edit2.5: und das m/M auch noch ... nicht mein Tag
Ich hatte immer wieder Leute, bei denen sich "programm PIPE ... und was nun?" festgefangen hat. Das ging mal soweit, dass ich mehrere Tage gebraucht hab, jemanden sein "cat datei.txt | cat" abzugewöhnen. Der Typ war nicht doof, bei dem hatte sich nur das Muster mit der Pipe so festgefressen, dass es richtig Arbeit war, das wieder zu fixen.
Die Pipe ist superwichtig und ganz klar die beste Erfindung seit geschnitten Brot, aber sie nutzt einem Nichts, wenn man die Möglichkeiten der Endpunkte nicht kennt. Wichtig ist daher, dass nen Anfänger lernt, die Manpages zu nutzen, man sich immer mal wieder vergewissert, was KANN das Progrämmchen alles? Manchmal kommt Neues dazu, manchmal vergisst man was, manchmal kennt man was nicht, weil man genau dieses eine Feature noch nie gebraucht hat und man es deswegen bisher nicht auf dem Schirm hat, etc.
Ist immer wieder ne schöne Überraschung, wenn man bei Tools die man schon gefühlte 20 Jahre nutzt was Neues entdeckt
... genug Offtopic und damit der Thread nochmal was sinnvolles zu grep hat:
Ein paar der Parameter die man bei grep unbedingt kennen sollte: i und v
Code: Alles auswählen
grep -i turn Textdatei.txt | grep -v "#"
Code: Alles auswählen
grep -i turn Textdatei.txt | grep -v "^#"
Code: Alles auswählen
grep -i turn Textdatei.txt | grep -v "^[[:space:]]*#"
Edit: fehlendes * eingefügt, Danke fürs Aufpassen @Meillo
Edit2: noch nen : eingefügt, nochmal Danke @Meillo
Edit2.5: und das m/M auch noch ... nicht mein Tag
Zuletzt geändert von eggy am 19.09.2021 11:48:15, insgesamt 1-mal geändert.
Re: suchen mit cat
An dem Punkt anzusetzen macht sicher Sinn. Ich finde es jedoch am Anfang ganz hilfreich von links nach rechts zu denken, die Pipe wie ein Wasserrohr zu verstehen und da beginnen wir eben ganz links mit der Quelle, also:eggy hat geschrieben:19.09.2021 10:09:21Schlimm find ich es auch nicht, aber nach meiner Erfahrung hat sich bei einigen Leuten nen Knoten im Gehirn gelöst, als sie merkten, dass die Pipe auch nur ein -zusätzliches- Mittel zur Dateneingabe ist. Wenn auch ein sehr cooles
Ich hatte immer wieder Leute, bei denen sich "programm PIPE ... und was nun?" festgefangen hat.
Code: Alles auswählen
cat Datei |
Dies schafft eine schoene Trennung zwischen Datenquelle und Umformprogrammen (Filtern), die ich paedagogisch sinnvoll finde. Dass die ganzen Filterprogramme auch Datenquellen lesen koennen ist mehr eine praktische Sache, die erfahrenere User nutzen, sie verwaessert aber die Klarheit des Pipes-and-Filters-Modells und der strikten von-links-nach-rechts Datenflussrichtung.
Zuerst wuerde ich versuchen, Pipelines und das Anstueckeln von Filtern zu lehren, jeweils mit der generischen cat-Datenquelle am Anfang. Im zweiten Schritt wuerde ich Stdin/Stdout/Stderr erklaeren und damit Ein-/Ausgabeumleitungen (ohne Stderr-Umleitungen). Dann kann man naemlich auch das machen:
Code: Alles auswählen
cat Datei | grep ...
<Datei grep ...
... | cat >Ausgabedatei
... | grep ... >Ausgabedatei
Erst im dritten Schritt wuerde ich erklaeren, dass Programme als Argumente uebergebene Dateien lesen, und wenn keine uebergeben werden, dann Stdin. Diese Konvention, die uns vollkommen in Fleisch und Blut uebergegangen ist, enthaelt naemlich eine Menge Komplexitaet, die wir gar nicht mehr erkennen. Ignoriert man anfangs die Tatsache, dass Filterprogramme auch Dateiargumente bekommen koennen, dann muss man sich naemlich nicht mit sowas rumschlagen:
Code: Alles auswählen
grep foo Datei | sort -n Datei2 Datei3 | wc -l Datei 4
Aus diesen Gruenden halte ich cat als generische Datenquelle fuer ein didaktisch sinnvolles Hilfsmittel, das keinesfalls verteufelt werden sollte, da es zudem auch konzeptionell viel schoener ist. Einzig aus Sicht der Zeitperformance ist es schlechter ... was wiederum der Grund ist, warum UUOC aus der Perl-Community heraus entstanden ist (... was ich auch in meinem Vortrag erklaere).
Use ed once in a while!