Sie sind nicht angemeldet.

[gelöst] "Daufrag"

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

04.03.2008, 20:59

"Daufrag"

Sorry, bin eigentlich der Meinung das dieses Daufrage ist, aber irgentwie habe ich es vergessen und nach Stundenlangem Suche nicht gefunden ;(

Will mir ein Script scheiben, was per Pipe Eingabe verarbeitet, also z.B.

Quellcode

1
cat Beispiel.txt | MeinScript.sh

wie muß im Script die Verabeitung aussehen?

s.o. habe sowas schon X mal geehen, finde es aber nicht *heul*

Danke für die Hilfe an einem DAU (Auch ein Admin kann doch mal blöd als DAU fragen?)
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Wernieman« (05.03.2008, 10:42)


2

04.03.2008, 22:07

Heda,

ohne mehr Infos, kann ich nur folgendes vorschlagen:

Eine while-Schleife ist Dein Freund.

Ansonsten versuch mal "read" -->

Quellcode

1
man read


Quellcode

1
2
3
4
#!/bin/sh
while read input; do
	printf "input = %s \n" $input
done


Oder sowas:

Quellcode

1
2
3
4
#!/bin/sh
while read input; do
	echo "input $input"
done


in ein Scriptchen schreiben und so aufrufen:

Quellcode

1
ls -l | scriptchen.sh


Nu dann,
Sascha
Dell Inspiron 9400 / T7200
Kernel 2.6.18
gcc version 4.1.1

3

05.03.2008, 10:00

Quellcode

1
anwendung1 | anwendung2

Durch die Pipe, wird stdout von anwendung1 zu stdin von anwendung2.
Du musst also am Code von anwendung2 sogesehen nichts ändern.
Wenn anwendung2 so funktioniert, dass es die Eingabe normal vom Benutzer abfrägt, dann funktioniert es auch mit der Pipe.
"man read" ist schon mal ein guter Ansatz.
"Erst nachdem wir alles verloren haben, haben wir die Freiheit, alles zu tun."
"It's only after we've lost everything, that we're free to do anything!"

Jabber: Die ID kann via PN erfragt werden.

4

05.03.2008, 10:01

Danke ... nur leider wird bei der Lösung bei jedem Leehrzeichen ein neuer Input erzeugt, d.h. Dein ls -l erzeugt sher viele Zeilen, anstatt für jede Zeile eine Variablenübergabe ...

Ansonsten geht es in die Richtung

P.S: Bin nicht normalerweise ich derjenige, der immer nach mehr Infos schreit?
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

5

05.03.2008, 10:26

P.S: Bin nicht normalerweise ich derjenige, der immer nach mehr Infos schreit?


Na, dann nehm ich die Lunte auf: MEHR Infos bitte =)

Was macht dein Script? Die hier vorgestellten Lösungen müssten doch funken (es gibt da sicher noch ganz abgefreakte xargs/skip Dinge ... aber wer will das schon).
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

6

05.03.2008, 10:30

Das Script läuft, allerdings ...

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
irexec@birgit ~ $ ls -lha | ./script.sh
input = insgesamt
input = 332K
input = drwxr-xr-x
input = 3
input = irexec
input = root
input = 248
input = 5.
input = Mär
input = 09:54
input = .
input = drwxr-xr-x
input = 17
.......


Währe eigentlich notwendig, das er die zeile wie folgt verarbeitet:

Quellcode

1
2
drwxr-xr-x  3 irexec root    248  5. Mär 09:54 .
drwxr-xr-x 17 werner users   432 25. Feb 10:21 ..


Da ich nicht die Menge der Übergebenen Daten in der PIPE weis .....
Habe jetzt nicht unter "man read" eine Lösung dazu gefunden! Das Blöde ist, das ich sowas schon mal programmiert habe, aber den Weg total vergessen und an den Code (bzw. das Script) komme ich nicht mehr *heul*

Was für Infos braucht Ihr denn noch?
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!

7

05.03.2008, 10:36

Also

Quellcode

1
$ ls -lah | while read l; do echo ${l}; done 
verarbeitet es schon zeilenweise, wie auch sascha2 geschrieben hat ...

Nochmals: was hast du mit deinem script eigentlich vor?
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

8

05.03.2008, 10:42

Komisch .. die das erste mit printf (welches ich genommen hatt) liefert ein anderes Ergebnis als das mit echo....

Habe aber erstmal genug Tips! DANKE!

Langsam dämmert es mir wieder!
Meine Rechtschreibfehler sind gewollt und unterliegen dem Copyright des Verfassers, es sei denn, sie sind explizit unter die GPL gestellt .....

Außerdem sind sie ein Ausdruck der Persönlichkeit des Schreibers!