Ein programm mit daten aus einer datei füttern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
SledgeHammer
Beiträge: 175
Registriert: 10.08.2003 17:32:04

Ein programm mit daten aus einer datei füttern

Beitrag von SledgeHammer » 14.09.2004 16:32:47

Hi,
wie kann ich ein Programm das keine möglichkeit bietet eine quelldatei anzugeben trotzdem mit daten füttern die in einer datei sind ?

gruß Dennis

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 14.09.2004 17:18:31

versuchs mal so:

PROGRAMM << DATEI
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 14.09.2004 17:36:57

Wohl eher

Code: Alles auswählen

Programm < Datei
<< hat eine andere Bedeutung ("Here Documents")

Benutzeravatar
SledgeHammer
Beiträge: 175
Registriert: 10.08.2003 17:32:04

Beitrag von SledgeHammer » 14.09.2004 19:14:17

leider geht das bei dem Programm nicht.
ich will eine Schleife die jeden eintrag dem program einzelt vorwirft. Wie muss die aussehn ?

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 14.09.2004 20:31:37

Code: Alles auswählen

#!/bin/bash
IFS="
"
for line in $(cat DATEI); do
  echo $line | Programm
done
(Nach dem IFS=" sofort enter drücken)

Benutzeravatar
labor78
Beiträge: 163
Registriert: 13.07.2004 10:29:58

Beitrag von labor78 » 14.09.2004 20:54:39

geht auch anders...

Code: Alles auswählen

#!/bin/sh
while read line; do 
    echo $line | programm
done < infile
Auf die Art spart man sich das rumbasteln mit dem `IFS'. Siehe auch Useless use of cat Award, z.B. unter:
http://sial.org/howto/shell/useless-cat/
May the source be with you...

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 14.09.2004 22:36:04

Ah! Da hätte ich mal früher drauf kommen sollen. Dieses IFS rumgefrickel ging mir schon immer auf die Nerven.

Benutzeravatar
SledgeHammer
Beiträge: 175
Registriert: 10.08.2003 17:32:04

Beitrag von SledgeHammer » 15.09.2004 09:03:47

Fettes danke erstmal ! :)

Code: Alles auswählen

#!/bin/sh
while read line; do
echo $line |xargs programm
done < infile 

Funktioniert soweit (nach hinzufügen des xargs) FETTES DANKE nochmals :) !!

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 15.09.2004 15:20:41

Eigentlich solltest du die xargs zeile durch

Code: Alles auswählen

programm $line
ersetzen können.

BTW: Dass du mit "mit daten füttern die in einer datei sind" meinst, den Inhalt der Datei als Parameter zu übergeben, darauf muss man erstmal kommen...

Antworten