Befehl vor der Pipe in Script einlesen

G

gismo82

Jungspund
Hi...

ich habe vor ein Script zu schreiben, welches auf verschiedene Dateien angewendet werden soll. Diese Dateien unterscheiden sich leicht im Aufbau, was dann auch im Script berücksichtigt werden muss.

Das Script rufe ich wie folgt auf:
Code:
cat <file> | ./shell_script.sh

Das <file> kann sich ändern, was ich auch im Script berücksichtigen muss. Wie kann ich im Script den Ersten Teil der Pipe einlesen.


Gruß Andreas
 
Hi,

na, die Pipe gibt das an die Standardeingabe von deinem Skript, ergo musst du die lesen. Typischerweise mit read.

mfg,
bytepool
 
Sorry, aber ich sitze grad völlig auf dem Schlauch.

Wie muss der Befehl denn aussehen?


Gruß Andreas
 
Hi,

z.B.
Code:
read foo
Aber es sollte eigentlich jeder Befehl gehen, der sich seine Eingabe von der Standardeingabe holt.

mfg,
bytepool
 
naja du müsstest am anfang deines skriptes sowas wie:
Code:
read file

und dann danach eventuell sowas wie eine case unterscheidung machen.
Der du dann vertscheidene Paramater deiner File zuordnest oder so.

grüße

okay du warst schneller ;-)
 
Ok,

so bekomme ich den Inhalt des Files. Aber ich bräuchte den Namen des Files...

Gruß Andreas
 
Hi,

so bekomme ich den Inhalt des Files. Aber ich bräuchte den Namen des Files...

davon war bis jetzt nicht die Rede. Im uebrigen hast du dann einen ordentlichen Fehler in deiner Logik.
Wie willst du denn von
Code:
cat <file> | ./shell_script.sh
einen Rueckschluss auf den Namen der Datei erhalten, wenn der Name der Datei nicht in der Datei selbst steht?

Wenn ich das richtig verstanden habe, hast du verschiedene Muster Strukturen fuer verschiedene Datei Typen, und davon haengt ab, wie die Datei bearbeitet werden soll. Da gibt es zig Moeglichkeiten das zu loesen, aber ich wuerde damit anfangen die Datei als Parameter zu uebergeben, und nicht einfach nur den Inhalt per Pipe.

mfg,
bytepool
 
Ok...

ich hatte gedacht, dass es so funktioniert...

Dann werde ich mich mal daran machen, mein Script auf die Parameterübergabe umzuschreiben...

Danke

Gruß Andreas
 
Hi,

ich hatte gedacht, dass es so funktioniert...

ja, je nachdem was denn eigentlich "so funktionieren" soll... Du koenntest z.B. die Struktur der Datei untersuchen um auf den Typ zu schliessen, oder in die erste Zeile der Datei den Typ vorher reinschreiben und die erste Zeile dann beim weiteren Abarbeiten ignorieren.

Aber du kannst nicht, wenn du nur den Inhalt uebergibst, vom Inhalt auf den Dateinamen schliessen, wenn der Dateiname nicht im Inhalt steht... Irgendwie logisch, oder?

mfg,
bytepool
 
Ja, wenn man da so drüber nachdenkt, ist das schon logisch.

Bin leider noch nicht so fit in der Shell-Programmierung. Hatte einfach gedacht, dass das möglich ist.

Gruß Andreas
 

Ähnliche Themen

chown Befehl in einem Script

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Hilfe bei backup-script

Zeile für Zeile auslesen und Befehl ausführen

AWK Tip gesucht

Zurück
Oben