Dateiinhalte multiplizieren

D

Delta

Jungspund
Hallo,

ich möchte gern die Inhalte mehrerer Datein multiplizieren und das Ergebnis in eine Ergebnisdatei schreiben lassen.

Beispiel:

Code:
Inhalt Datei 1:

A
B

Code:
Inhalt Datei 2:

D
E
Code:
Gewünschter Inhalt der Ergebnisdatei:

A D
A E
B D
B E

Wie und womit liesse sich das bewerkstelligen?

Vielen Dank schonmal.
 
Und in wie weit ist dein Beitrag jetzt nützlich für mich?

Nun ich denke der gute marcellus, hat dir den Link gegeben, damit du ihn liest. Denn mit Perl oder einer anderen Sprache kannst du dein Problem lösen, indem du einfach den Inhalt der Datei 1 einliest und dieser Schleife den Inhalt der Datei 2 "multiplizierst" (nebeneinander schreibst) - ebenfalls in einer Schleife. Ist als Solches nicht sehr schwer - Nachdenken tut auch nicht weh. :headup:
 
Zuletzt bearbeitet von einem Moderator:
Ok er hats halt nicht so mit selber arbeiten...
Allso hier ein Beispielcode zum Problem!
Code:
#!/usr/bin/perl

$afile = 'a.txt';
$bfile = 'b.txt';

open(A,$afile);
open(B,$bfile);

@alines = <A>;
@blines = <B>;

close(A);
close(B);

open(RESULT,">c.txt");
foreach $aline (@alines) 
{
	chop $aline;
	foreach $bline (@blines) 
	{
		print RESULT "$aline $bline";
	}
}
close(RESULT);
 
Wozu hat man die bash:
Code:
while read lA; do while read lB; do echo $lA*$lB; done < B; done <A | bc > result
 
Erstmal vielen Dank euch.

Der Inhalt von A & a ist jeweils:

Code:
A
B

Und von B & b

Code:
C
D

@HPollak: Die Ergebnisdatei c wird zwar angelegt ist aber leer.

@amöbe: Der Inhalt der Ergebnisdatei result, welche ebenfalls angelegt wird ist:

Code:
120
130
132
143

Was läuft da noch schief?

Und gibt es Vorteile und wenn ja welche, das Ganze in Perl zu realisieren, gegenüber Python zB?

@Schlauköpfe: Ihr würdet mir also ernsthaft raten mich in Perl einzuarbeiten um simpel 2 Dateiinhalte zu multiplizieren? Ich hoffe ihr seid nicht professionell beratend in der IT Branche tätig. Und klopf dir mal selbst auf die Rübe für die schlaue Antwort. :headup:

Edit: Das Perl Script läuft, hatte die zusätzliche Dateiendung übersehen. Mein Fehler. Frage zu Perl und Pyton bleibt aber noch bestehen.
 
Zuletzt bearbeitet:
...
@Schlauköpfe: Ihr würdet mir also ernsthaft raten mich in Perl einzuarbeiten um simpel 2 Dateiinhalte zu multiplizieren? Ich hoffe ihr seid nicht professionell beratend in der IT Branche tätig. Und klopf dir mal selbst auf die Rübe für die schlaue Antwort. :headup:
...

Du solltest nicht vergessen, dass wir hier alle aus gutem Willen/bloßer Langeweile sind. Wenn du vor hast hier Hilfe zu finden würde ich dir ans Herz legen dir solche Sprüche abzugewöhnen.

Aber ich will nicht so sein, deswegen hast du hier paar Links:
Perl vs. Python

Wenn du spezifische Fragen hast, nachdem du das gelesen hast und sie nett formulierst kriegst du vielleicht auch Antworten drauf.
 
Hallo,

ich weiss schon wie Open Source funktioniert. Im Endeffekt basiert da alles auf gutem Willen, wenn du so willst. Ist mir nicht neu.

Nur fand ich beide Antworten ein wenig provokant.

Und mit deinen kann ich leider nichts anfangen. Der erste Link zielt auf ein, sicherlich sehr gutes, Perl Tutorial. Das wäre jetzt aber ein bischen viel overhead, mich in Pearl einzuarbeiten um lediglich 2 Dateiinhalte zu multiplizieren.Die anderen beiden Links könnten ja nun allgemeiner nicht sein. Und ob nun Perl oder Python besser für mein spezielles Anliegen ist, kann ich daraus logischerweise leider nicht ersehen.
 
Das Perl tutorial, das ich geposted hab hast du, soweit dus brauchst in 1-2h spätestens durch.

Aber HPollak hat dir schon ein Perl script geschrieben, dass genau das macht, was du haben wolltest. Das solltest du mit dem tutorial auch verstehen können.

Wenn du ein Programm haben willst, dass etwas spezielles macht wird dir nicht viel anderes Übrig bleiben als dir eine Programmiersprache anzueignen. Es schränkt dich ja keiner auf Perl ein, wenns dich glücklich macht schreib dein Programm in Brainfuck, was dir am Besten liegt musst aber immernoch du herausfinden.
 
Also Brainfuck wäre mir für den ernsthaften Einsatz zu umständlich und ineffektiv. :D

Das Script von HPollak ist klasse und macht auch genau was ich brauche.

Aber im Ernst ich kann mir gut vorstellen das ein Coder der vorher nichts mit Perl zu tun hatte das in 2 Stunden erfasst wie du schreibst und das auch umsetzen kann.

Ich selbst bin aber kein Programmierer. Ich hab sozusagen nur einen Codeschnipsel gesucht der meine Aufgabe lösen kann.

Allerdings benötige ich das Script in näherer Zukunft auch noch ein wenig Umfangreicher.

Ist sicher eher ein Fall für die 'Jobs' Kategorie hier, schon klar.

Ich hab auch ein wenig über die Unterschiede zwischen Perl und Python im direkten Vergleich gelesen. Allerdings kann ich als nicht Coder damit nur sehr wenig anfangen.

Das Script müsste auf Datenbankbasis arbeiten und aus mindestens 2 Modulen bestehen, einem was Clientseitig, auf dem Desktop ausgeführt wird und einem Serverseitigen, wo auch die Datenbank liegt in die alles vom Client geschrieben wird.
Es müsste im Endeffekt die ganze Zeit secure mit dem Server verbunden sein und sämtliche Clientoperationen in die Datenbank dort schreiben. Welcher Datenbanktyp ist noch nicht klar.

Könntet ihr da Aussagen treffen welche Programmiersprache am besten geeignet wäre um das umzusetzen? Stabilität liegt sicherlich in den Skills des Programmierers begründet, aber Performance zB?

Die Clientoperationen sind alle ähnlich geartet wie die oben beschriebene.

Ich würde nämlich gern zuerst herausfinden welche Lösung die für mich beste wäre und dann ganz speziell einen Coder suchen der das genau so umsetzen kann.

Gruss
 
Wenn du dir sowieso einen Programmierer suchen willst kannst du die Frage auch offen lassen.
 
Versteh ich schon wieder nicht.

Warum sollte ich die Frage offen lassen?
 
Wenn du dir sowieso einen Programmierer suchst wird der schon wissen womit er zurecht kommt.
 
Genau, wie ich aber bereits schrieb möchte ich gern anders vorgehen. Und zuerst selbst wissen was für mich am besten ist.

Ich hoffe ich darf die Frage so stehenlassen hier?
 
Allso ich hab vorher nichts mit Perl zu tun gehabt, hab das Programmchen mit Hilfe des Tutorials in ca. 20 Minuten gebastelt inkl. Tests, dann stell ich mal so die Frage in den Raum, wie viel Zeit da im Forum aufgegeangen ist.
 
Aja.

Sicher mehr als 20 Minuten, da haste schon recht.

Vielleicht findet sich ja auch noch eine ältere Dame die bisher nie einen Computer angefasst hat und das ganze in 3 Minuten schafft?
 
Für so eine Aufgabe sollte man dan C oder so nehmen. Da kann man per ssh-lib oder ähnlichen auch
den Netzwerkverkehr noch relativ einfach veschlüsseln und performant wirds auch.
Server auf DB-Seite lauscht auf clients - die machen nen connect und schicken die Daten, von mir aus
verschluesselt oder wie auch immer.
DB bietet sich Postgresql an - ist performt, robust und hat ne prima high-level Schnittstelle zur Sprache C.
 
Vielen dank für deinen Beitrag. :)

Ist denn die Performance von C so deutlich höher, ein erfahrener Coder vorausgesetzt der sehr genau weiss was er tut, als von zB J2EE?

Wäre es nicht bedeutend komplexer in C zu realisieren als in zB J2EE ? Oder Python?

Gruss
 
Irgendwie habe ich das mit dem multiplizieren zu wörtlich genommen. Aber das tuts:
Code:
while read lA; do while read lB; do echo $lA $lB; done < B; done <A > result

Falls du da noch ein bisschen SSH einbaust, kannst du sehr sicher die Daten zwischen irgendwelchen Computern im Netzwerk/Internet austauschen.

Da du jetzt mit Datenbank-Architektur anfangen willst, aber dir noch nicht mal ein 2-Stunden Tutorial durchlesen willst, naja... vergiss es.

Wenn du schon was mit Unix/Linux machst, lohnt es sich auf jeden Fall ein bisschen shell scripting zu lernen (Und andere Sachen natürlich auch aber) wenn du sogar das nicht machen willst, dann würde ich das Technische vielleicht in andere Hände legen, und nicht versuchen anhand der Meinung von irgendwelchen Leuten in Foren zu entscheiden.

Schließlich kommt es nicht immer auf Performance an: Wenn du dir in Zukunft, nach etwas lernen, selbst in 3 Minuten ein lahmes Script bauen kannst, das halb so performant ist, dann kannst du dir für das Geld, das du dir für den Programmierer sparst, einfach einen zweiten Rechner kaufen.
 

Ähnliche Themen

Verzeichnis mit 1200 Dateien auf Verweise in Textdateien checken

sed - Bitte um Unterstützung

ffmpeg Framerate erhöhen.

sed in awk

Port Forwarding mit iptables

Zurück
Oben