title image


Smiley Re: Suchen von best. Dateien mit best. Inhalt
Hi,



> Oben die beiden von dir genannten Varianten machen jedenfalls nicht das, was das Ziel ist.

Nicht? Was machen sie denn?

Was finden sie, was nicht gefunden werden sollte?

Was finden sie nicht, was gefunden werden sollte?

Erklär Dich mal genauer...



Die erste Syntax sollte Dir aufzeigen, wie Du mit find ab einem bestimmten Verzeichnis alle Dateien mit der Endung .c finden kannst.



Die zweite Syntax nutzt die erste, um alle .c Dateien zu ermitteln.

Jede gefundene Datei sollte mit grep geprüft werden, ob darin "main" auftaucht. Wenn ja, wird die Datei genannt.



Was passiert da also, was nicht das Ziel sein soll?

Schreib mal was, erklär das aufgetretene Verhalten. Erklär die Unstimmigkeiten zum gewünschten Verhalten.



Der grundlegende Pfad im Linux-System ist das Wurzelverzeichnis /.



> Bin bissel am verzweifeln. Jmd. gab mir als Tipp 2 Stichworte : stdin und xargs ...

> xargs versteh ich noch ... kann ich grad aber nicht einflechten ... wie/wo

> stdin schnall ich dann wieder garnicht.



Es gibt 3 sogenannte Kanäle: STDIN, STDOUT, STDERR



STDIN ist die Standardeingabe. Betrachte als Standard das Terminal, also dein Keyboard.

STDOUT ist die Standardausgabe. Hier landen alle normalen Ausgaben, i.d.R. auf dem Bildschirm.

STDERR ist der Standardfehlerkanal. Hier landen die Fehlermeldungen, wenn etwas schief geht.



Du kannst die Kanäle umleiten und verbinden, z.B. STDOUT zur STDIN eines anderen Kommandos, z.B. (ein sinnfreies, aber funktionierendes Beispiel:)

cat lange_datei.txt | less



cat gibt den Inhalt der angegebenen Datei auf STDOUT aus. Durch die Pipe | wird STDOUT des cat mit STDIN des less verbunden. Daher landet der Dateiinhalt nicht auf dem Bildschirm sondern als Eingabe beim less. Dieses gibt nun die Daten seitenweise (dafür ist less da) auf dem Bildschirm aus, denn dieses ist sein STDOUT.



xargs liest nun alles, was es auf STDIN bekommt, ein und ruft dann das angebene Kommando mit dem STDIN als Parameter auf.

Also wird aus:



echo "datei1.txt datei2.txt" | xargs chmod -x



xargs empfängt "datei1.txt datei2.txt" auf STDIN und ruft dann chmod -x auf: chmod datei1.txt datei2.txt



Alle Klarheiten beseitigt?



Greetz



Linuxer

Wann werden endlich wieder brauchbare Fehlermeldungen Mode?


Alle Angaben ohne Gewähr und auf eine Linux-Umgebung abgestimmt!


Woran liegt es, dass ein Danke oftmals schwerer geschrieben ist als eine bei weitem längere Frage?


http://perldoc.perl.orghttp://search.cpan.orghttp://httpd.apache.orghttp://www.oreillynet.com/linux/cmd/



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: