Hi, hab' eine kleine frage zu einem Bash-script und einem eingebetteten cat Aufruf. Momentan sieht es so aus: cat Datei | Befehl $AUSGABECAT Wie ist der richtige Variabelenname ?????? Bin für jeden Tipp dankbar. Gruß Steffen
On Mon, Jul 09, 2001 at 09:17:18PM +0200, Steffen Volk wrote:
Hi,
hab' eine kleine frage zu einem Bash-script und einem eingebetteten cat Aufruf.
Momentan sieht es so aus:
cat Datei | Befehl $AUSGABECAT
Wie ist der richtige Variabelenname ?????? Ich verstehe nicht ganz was Du da vorhast. Wenn Du die Ausgabe weiter pipest dann brauchst Du kein "$AUSGABECAT". Vorrausgesetzt "Befehl" kann dein iput auch direkt entgegen nehmen.
Sonst musst Du das in mehreren Schritten machen. Sven -- Subject: Re: woody hanging
WRT subject. $ apt-get install viagra ;-) [Karsten M. Self in debian-user]
cat Datei | Befehl $AUSGABECAT
Wie ist der richtige Variabelenname ??????
Ich verstehe nicht ganz was Du da vorhast. Wenn Du die Ausgabe weiter pipest dann brauchst Du kein "$AUSGABECAT". Vorrausgesetzt "Befehl" kann dein iput auch direkt entgegen nehmen.
Sonst musst Du das in mehreren Schritten machen.
Die Datei ist eine Sammlung von Telefonnummern: 0170xxx 0171xxx usw. diese Nummern sollen in den Befehl ubergeben werden. Idee? Cu Steffen
On Mon, Jul 09, 2001 at 09:32:33PM +0200, Steffen Volk wrote:
cat Datei | Befehl $AUSGABECAT
Wie ist der richtige Variabelenname ??????
Ich verstehe nicht ganz was Du da vorhast. Wenn Du die Ausgabe weiter pipest dann brauchst Du kein "$AUSGABECAT". Vorrausgesetzt "Befehl" kann dein iput auch direkt entgegen nehmen.
Sonst musst Du das in mehreren Schritten machen.
Die Datei ist eine Sammlung von Telefonnummern: 0170xxx 0171xxx usw.
diese Nummern sollen in den Befehl ubergeben werden. Da sollte wenn ich das richtig verstehe ein cat
|befehl reichen.
Gibt jetzt zwei moeglichkeiten: 1. Ich hab da was mit dem pipes falsch verstanden und das geht so nicht 2. Ich habe dich immer noch nicht verstanden ... Sven -- Subject: Re: woody hanging
WRT subject. $ apt-get install viagra ;-) [Karsten M. Self in debian-user]
Die Datei ist eine Sammlung von Telefonnummern: 0170xxx 0171xxx usw.
diese Nummern sollen in den Befehl ubergeben werden. Da sollte wenn ich das richtig verstehe ein cat
|befehl reichen.
OK, in aller Ausfuhrlichkeit. Aus der Datei werden die Nummern ausgelesen, an die eine SMS verschickt werden soll. sieht so aus. cat nummern | lynx "http://blabla?nummer=$AUSGABECAT&TEXT=BLUBBLUB" wie kann ich das realisieren? CU Steffen
On Monday 09 July 2001 22:06, you wrote:
OK, in aller Ausfuhrlichkeit. Aus der Datei werden die Nummern ausgelesen, an die eine SMS verschickt werden soll.
sieht so aus.
cat nummern | lynx "http://blabla?nummer=$AUSGABECAT&TEXT=BLUBBLUB"
wie kann ich das realisieren?
les die datei in ein array ein und uebergebe dann in einer schleife immer einen wert des arrays an die url: foreach($array as $wert) { lynx "http://blabla?nummer=$wert&text=BLUBBLUB"; } oder so aehnlich (das is an die php-syntax angelehnt) mfg, gerd -- /"\ \ / ASCII Ribbon Campaign x Say NO to HTML in email and news !! / \
On Mon, Jul 09, 2001 at 10:18:53PM +0200, Gerhard Feiner wrote:
On Monday 09 July 2001 22:06, you wrote:
OK, in aller Ausfuhrlichkeit. Aus der Datei werden die Nummern ausgelesen, an die eine SMS verschickt werden soll.
sieht so aus.
cat nummern | lynx "http://blabla?nummer=$AUSGABECAT&TEXT=BLUBBLUB"
wie kann ich das realisieren?
les die datei in ein array ein und uebergebe dann in einer schleife immer einen wert des arrays an die url:
foreach($array as $wert) { lynx "http://blabla?nummer=$wert&text=BLUBBLUB"; }
oder so aehnlich (das is an die php-syntax angelehnt) In der bash sollte das dann irgendwie so aussehen:
#!/bin/bash y=`cat nummern` for x in $y do lynx "http://blabla?nummer=$x&TEXT=BLUBBLUB" done Ist nicht garantiert dass das geht. Sven -- Subject: Re: woody hanging
WRT subject. $ apt-get install viagra ;-) [Karsten M. Self in debian-user]
* Sven Hoexter schrieb am Montag, 2001-07-09:
y=`cat nummern` for x in $y do lynx "http://blabla?nummer=$x&TEXT=BLUBBLUB" done
Ist nicht garantiert dass das geht.
Sollte es tun. Aber die wichtigste Zeile läßt sich verbessern. Nachdem es auf die Antwort vom Server ja wahrscheinlich nicht ankommt: curl "http://blabla?nummer=$x&TEXT=BLUBBLUB" > /dev/null Solltest du doch daran interessiert sein: curl "..." > sms-$x.html Und sollte der Server nicht GET- sondern POST-Variablen erwarten (also die, die nicht in der URL stehen): curl -F "nummer=$x" -F "TEXT=BLUBBLUB" "http://blabla" > ... -- Christian Ullrich Registrierter Linux-User #125183 "Sie können nach R'ed'mond fliegen -- aber Sie werden sterben"
On Mon, 09 Jul 2001, Steffen Volk wrote:
cat nummern | lynx "http://blabla?nummer=$AUSGABECAT&TEXT=BLUBBLUB"
wie kann ich das realisieren?
for nummer in `cat nummerndatei` do lynx "http://blabla?nummer=$nummer&TEXT=Blafasel" done -dnh -- Ich bin mir zu Unsicher um sicher zu sein. [WoKo in dag°]
On Monday 09 July 2001 21:17, you wrote:
Hi,
cat Datei | Befehl $AUSGABECAT
also falls du in dem befehl nach der pipe die ausgabe des cat-befehls verarbeiten willst, sieht das so aus: cat Datei | egrep -e 'expr' - das - steht fuer STDIN (in dem fall STDOUT vom cat, da das ja das prizip einer pipe ist) mfg, gerd -- /"\ \ / ASCII Ribbon Campaign x Say NO to HTML in email and news !! / \
* Gerhard Feiner schrieb am 09.Jul.2001:
On Monday 09 July 2001 21:17, you wrote:
cat Datei | Befehl $AUSGABECAT
also falls du in dem befehl nach der pipe die ausgabe des cat-befehls verarbeiten willst, sieht das so aus:
cat Datei | egrep -e 'expr' -
das - steht fuer STDIN (in dem fall STDOUT vom cat, da das ja das prizip einer pipe ist)
Richtig, aber warum in alles in der Welt schreibt man denn nicht gleich egrep -e 'expr' Datei wäre doch viel einfacher, und auch einen Prozeß weniger. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11
On Monday 09 July 2001 22:13, you wrote:
Richtig, aber warum in alles in der Welt schreibt man denn nicht gleich
egrep -e 'expr' Datei
wäre doch viel einfacher, und auch einen Prozeß weniger.
auch richtig, is aber reine gewohnheits-sache, und ein jaemmerlicher cat-prozess macht nem heutigen system nix aus =) ich arbeite ja net an nem 386er, hehe mfg, gerd -- /"\ \ / ASCII Ribbon Campaign x Say NO to HTML in email and news !! / \
* Gerhard Feiner schrieb am 09.Jul.2001:
On Monday 09 July 2001 22:13, you wrote:
Richtig, aber warum in alles in der Welt schreibt man denn nicht gleich
egrep -e 'expr' Datei
wäre doch viel einfacher, und auch einen Prozeß weniger.
auch richtig, is aber reine gewohnheits-sache, und ein jaemmerlicher cat-prozess macht nem heutigen system nix aus =) ich arbeite ja net an nem 386er, hehe
Macht doch absolut keinen Sinn. Wo hast Du Dir denn sowas angewöhnt? Nicht bei UNIX, will ich hoffen. Mag ja sein, daß es bei einem Prozeß nichts ausmacht, aber wehe, Du programmierst mal was Zeitkritisches. Irgendeine Schleife, oder so. Bernd
On Monday 09 July 2001 22:26, you wrote:
auch richtig, is aber reine gewohnheits-sache, und ein jaemmerlicher cat-prozess macht nem heutigen system nix aus =) ich arbeite ja net an nem 386er, hehe
Macht doch absolut keinen Sinn. Wo hast Du Dir denn sowas angewöhnt? Nicht bei UNIX, will ich hoffen. Mag ja sein, daß es bei einem Prozeß nichts ausmacht, aber wehe, Du programmierst mal was Zeitkritisches. Irgendeine Schleife, oder so.
natuerlich bei un*x: dec unix 3.2g ... da war das alles noch net so flexibel, nix gnu und so. da wusste man noch fuer was pipes erfunden wuerden. ausserdem macht egrep intern auch nix anderes. die prozessersparniss ist also ein trugschluss. mfg, gerd -- /"\ \ / ASCII Ribbon Campaign x Say NO to HTML in email and news !! / \
* Gerhard Feiner schrieb am 09.Jul.2001:
natuerlich bei un*x: dec unix 3.2g ... da war das alles noch net so flexibel, nix gnu und so. da wusste man noch fuer was pipes erfunden wuerden. ausserdem macht egrep intern auch nix anderes. die prozessersparniss ist also ein trugschluss.
Bei welchem egrep kann man denn keine Datei angeben? Das habe ich noch nie gesehen. Ich habe auch schon anderes erlebt als GNU. Da gab es GNU noch nicht mal, und GNU gibt es schon recht lange. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/produkte/buecher/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/shar/doc/sdb/de/html/literatur.html |Zufallssignatur 5
On Mon, 09 Jul 2001, Gerhard Feiner wrote:
On Monday 09 July 2001 22:26, you wrote:
auch richtig, is aber reine gewohnheits-sache, und ein jaemmerlicher cat-prozess macht nem heutigen system nix aus =) ich arbeite ja net an nem 386er, hehe
Du verwendest nur ein falsches Beispiel... $ find /usr/src/linux/ -type f > /tmp/linuxfiles $ wc -l /tmp/linuxfiles 9350 /tmp/linuxfiles $ time for f in `cat linuxfiles`; do cat "$f" | egrep -q -e 'fuck' -; done real 2m20.540s user 0m55.850s sys 1m3.420s $ time for f in `cat linuxfiles`; do egrep -q 'fuck' "$f"; done real 1m23.776s user 0m27.980s sys 0m31.430s $ Und obiges Beispiel ist nicht sonderlich weit hergeholt... [..]
natuerlich bei un*x: dec unix 3.2g ... da war das alles noch net so flexibel, nix gnu und so. da wusste man noch fuer was pipes erfunden wuerden.
Nonsens. Deine Variante muss 2 Prozesse starten und 3 Dateien oeffnen und die pipe dazwischen muss angelegt werden. - die pipe wird angelegt (d.h. die Dateidescriptoren von /dev/stdout fuer cat und /dev/stdin fuer egrep werden umgebogen). - cat oeffnet die Dateien "EINGABE" und /dev/stdout - egrep oeffnet /dev/stdin Die "richtige" Variante startet einen Prozess und oeffnet eine Datei. - egrep oeffnet nur die Datei "EINGABE".
ausserdem macht egrep intern auch nix anderes. die prozessersparniss ist also ein trugschluss.
s.o. -dnh -- 112: Regular File Reguläre Dateien sind die dümmsten Teile jedes Betriebssystems, sie können nichts außer das wieder ausplappern, was man ihnen erzählt hat. Sie glauben alles und immer nur das letzte, was ihnen gesagt wurde. Völlig kritiklos nehmen sie jeden Schwachsinn willenlos entgegen. (Frank Klemm)
participants (6)
-
B.Brodesser@t-online.de
-
Christian Ullrich
-
David Haller
-
Gerhard Feiner
-
Steffen Volk
-
Sven Hoexter