cat, viele Dateien in verschiedenen Verzeichnissen?
cat, viele Dateien in verschiedenen Verzeichnissen?
Hallo,
ich muss viele verschiedene Dateien aus verschiedenen Verzeichnissen zusammenführen.
Mit cat kann ich ja beliebige Dateien leicht zusammenführen.
Nun mein Problem.
Verzeichnisse A-K
In jedem dieser Verzeichnisse gibt es Textdateien in der Art a1, b1, c1, d1, e1, f1, g1, h1, ...
Nun sollen aus dem Verzeichnis A und B die die Dateien a1 in das Verzeichnis A_B zusammengeführt werden.
Wären das nur 3 Dateien, wäre das Ganze ja kein Problem. Nur habe ich hier viele Verzeichnisse mit jeweils vielen Dateien vorliegen
Es müssen immer die Dateien mit der gleichen Bezeichnung also a1 aus Verzeichnis A und B jeweils im Verzeichnis A_B zusammengeführt werden.
Im Verzeichnis A_B liegt dann eine Datei a1 als Zusammenführung aus A/a1 und B/a1
- A_B/b1 aus den Dateien A/b1 und B/b1 zusammengeführt
- A_B/c1 aus den Dateien A/c1 und B/c1 zusammengeführt
- A_B/d1 aus den Dateien A/d1 und B/d1 zusammengeführt
- ...
Kann das irgendwie per cat oder Anderem automatisiert werden?
Vielleicht kann ja eine Dateiliste helfen und irgendwie an cat übergeben werden? Die jeweiligen Verzeichnisse und Dateien tragen immer die gleichen Bezeichnungen.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt.
Einen schönen Abend wünscht Sonya
ich muss viele verschiedene Dateien aus verschiedenen Verzeichnissen zusammenführen.
Mit cat kann ich ja beliebige Dateien leicht zusammenführen.
Nun mein Problem.
Verzeichnisse A-K
In jedem dieser Verzeichnisse gibt es Textdateien in der Art a1, b1, c1, d1, e1, f1, g1, h1, ...
Nun sollen aus dem Verzeichnis A und B die die Dateien a1 in das Verzeichnis A_B zusammengeführt werden.
Wären das nur 3 Dateien, wäre das Ganze ja kein Problem. Nur habe ich hier viele Verzeichnisse mit jeweils vielen Dateien vorliegen
Es müssen immer die Dateien mit der gleichen Bezeichnung also a1 aus Verzeichnis A und B jeweils im Verzeichnis A_B zusammengeführt werden.
Im Verzeichnis A_B liegt dann eine Datei a1 als Zusammenführung aus A/a1 und B/a1
- A_B/b1 aus den Dateien A/b1 und B/b1 zusammengeführt
- A_B/c1 aus den Dateien A/c1 und B/c1 zusammengeführt
- A_B/d1 aus den Dateien A/d1 und B/d1 zusammengeführt
- ...
Kann das irgendwie per cat oder Anderem automatisiert werden?
Vielleicht kann ja eine Dateiliste helfen und irgendwie an cat übergeben werden? Die jeweiligen Verzeichnisse und Dateien tragen immer die gleichen Bezeichnungen.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt.
Einen schönen Abend wünscht Sonya
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
Sowas?
Code: Alles auswählen
$ cat /sys/block/hd*/size
156368016
156368016
8388604
$ cat /sys/block/*/dev
2:0
3:0
3:64
22:0
1:0
1:1
1:10
1:11
1:12
1:13
1:14
1:15
1:2
1:3
1:4
1:5
1:6
1:7
1:8
1:9
8:0
8:16
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
Hallo rendegast,rendegast hat geschrieben:Sowas?Code: Alles auswählen
$ cat /sys/block/hd*/size 156368016 156368016 8388604 $ cat /sys/block/*/dev 2:0 ... ...
vielen Dank für Deine Mühe.
Nur verstehe ich leider nicht, was das mit meinen oben aufgeführten Dateien und Verzeichnissen zu tun hat
LG
Sonya
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
rendegast wollte deine Aufmerksamkeit auf die Wildcards lenken ( denke ich )
anderes Beispiel
Gruß
gms
anderes Beispiel
Code: Alles auswählen
gms1 ~ # cd tmp/
gms1 tmp # mkdir a b c
gms1 tmp # touch a/a1 b/b1
gms1 tmp # ls [a-b]/[a-b]*
a/a1 b/b1
gms1 tmp # ls -l [a-b]/[a-b]*
-rw-r--r-- 1 root root 0 2009-05-31 21:13 a/a1
-rw-r--r-- 1 root root 0 2009-05-31 21:13 b/b1
gms
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
Hallo gms,
An "*" habe ich natürlich auch schon gedacht.
Nur bin ich kein Programmierer und da letztlich immer nur a mit a und b mit b verbunden werden sollen, dazu die jeweiligen Dateien in verschiedenen Verzeichnissen, war das mit dem "*" für mich erst einmal eine Sackgasse.
Kleine Frage nebenbei. Arbeitest Du immer als root ("gms1 tmp # ")?
Die Sache mit dem "/" ist sehr interessant. Kannte ich noch gar nicht.
Will also heißen, das ist meine Lösung?
Müsste ich die Sache nur noch mit cat in Verbindung bringen.
Einfacher ging es natürlich mit einer Verzeichnis/Dateiliste. Die liegt ja schon vor. Etwa diese Art:
Liste_Dateien_Verz_A.txt:
A/a1
A/b1
A/c1
A/de
...
...
Liste_Dateien_Verz_B.txt:
B/a1
B/b1
B/c1
B/de
...
...
Eine Dateiliste.txt kann ich ja an cat übergeben. Nur werden dann immer alle aufgeführten Dateien zusammengefügt
Immer noch Ratlos
Sonya
Da muß Mensch natürlich erst einmal darauf kommen. Danke für den Holzknüppel ...gms hat geschrieben:rendegast wollte deine Aufmerksamkeit auf die Wildcards lenken ( denke ich )
An "*" habe ich natürlich auch schon gedacht.
Nur bin ich kein Programmierer und da letztlich immer nur a mit a und b mit b verbunden werden sollen, dazu die jeweiligen Dateien in verschiedenen Verzeichnissen, war das mit dem "*" für mich erst einmal eine Sackgasse.
gms hat geschrieben: anderes BeispielGrußCode: Alles auswählen
gms1 ~ # cd tmp/ gms1 tmp # mkdir a b c gms1 tmp # touch a/a1 b/b1 gms1 tmp # ls [a-b]/[a-b]* a/a1 b/b1 gms1 tmp # ls -l [a-b]/[a-b]* -rw-r--r-- 1 root root 0 2009-05-31 21:13 a/a1 -rw-r--r-- 1 root root 0 2009-05-31 21:13 b/b1
gms
Kleine Frage nebenbei. Arbeitest Du immer als root ("gms1 tmp # ")?
Die Sache mit dem "/" ist sehr interessant. Kannte ich noch gar nicht.
Will also heißen, das ist meine Lösung?
Müsste ich die Sache nur noch mit cat in Verbindung bringen.
Einfacher ging es natürlich mit einer Verzeichnis/Dateiliste. Die liegt ja schon vor. Etwa diese Art:
Liste_Dateien_Verz_A.txt:
A/a1
A/b1
A/c1
A/de
...
...
Liste_Dateien_Verz_B.txt:
B/a1
B/b1
B/c1
B/de
...
...
Eine Dateiliste.txt kann ich ja an cat übergeben. Nur werden dann immer alle aufgeführten Dateien zusammengefügt
Immer noch Ratlos
Sonya
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
nein, das soll keine Vorbildwirkung habensonya hat geschrieben:Kleine Frage nebenbei. Arbeitest Du immer als root ("gms1 tmp # ")?
wäre soetwas in der Art eine Lösungsonya hat geschrieben:Müsste ich die Sache nur noch mit cat in Verbindung bringen.
Code: Alles auswählen
for w in a b c d e f g h i j k l m n o p q r s t u v w x y z; do
cat [A-B]/$w > A_B/$w
done
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
das Problem mit deinen Dateilisten, die sind auch noch nach Verzeichnissen getrennt, also müssen wir diese zusammenführen, das können wir aber direkt über die Verzeichnisse auch:sonya hat geschrieben: Eine Dateiliste.txt kann ich ja an cat übergeben. Nur werden dann immer alle aufgeführten Dateien zusammengefügt
Code: Alles auswählen
find [a-b] -type f | while read F; do basename "$F"; done | sort -u
Code: Alles auswählen
find [a-b] -type f | while read F; do basename "$F"; done | sort -u | while read N; do cat [a-b]/"$N" >a_b/"$N"; done
gms
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
Hallo gms,
ich bedanke mich herzlich für deine Mühe.
Nur sind ja, wie Eingangs erwähnt in den Verzeichnissen A bis M jeweils die Dateien a1 bis u1 vorhanden.
Zunächst einmal benötige ich dringend im (neuen) Verzeichnis A_B aus dem Verzeichnis A und B die beiden a1 zusammengefasst, dann die beiden b1, dann die c1 usw. u.s.f bis u1
Ich habe es jetzt ganz einfach und simpel gelöst
Habe mir die Dateiliste vorgenommen. In OOocalc einfach die Verzeichnissliste des Verzeichnisses "A" in eine Spalte, Liste von"B" in eine 2te Spalte dahinter eine Spalte mit ">A_B". Dahinter eine Spalte mit wiederum den einkopierten Dateien. ganz vorn eine Spalte nach unten ausgefüllt mit "cat". ganz oben eine Zeile eingefügt. In A2 die Zeichenfolge "#!/bin/bash" eingefügt. Das Ganze in eine "cat-dateilistea_b.sh" hineinkopiert und ausführbar gemacht. Zuvor noch per suchen und ersetzen ein paar Tabulaturen in der Textdatei eliminiert.
Das ganze ausgeführt.
War eine Sache von nicht mehr als 5 Minuten
OK, nicht ganz soooo wie Ihr Euch das hier so vorzustellen wünscht. Aber, es hat funktioniert
Danke und einen schönen Abend
Sonya
ich bedanke mich herzlich für deine Mühe.
Nur sind ja, wie Eingangs erwähnt in den Verzeichnissen A bis M jeweils die Dateien a1 bis u1 vorhanden.
Zunächst einmal benötige ich dringend im (neuen) Verzeichnis A_B aus dem Verzeichnis A und B die beiden a1 zusammengefasst, dann die beiden b1, dann die c1 usw. u.s.f bis u1
Ich habe es jetzt ganz einfach und simpel gelöst
Habe mir die Dateiliste vorgenommen. In OOocalc einfach die Verzeichnissliste des Verzeichnisses "A" in eine Spalte, Liste von"B" in eine 2te Spalte dahinter eine Spalte mit ">A_B". Dahinter eine Spalte mit wiederum den einkopierten Dateien. ganz vorn eine Spalte nach unten ausgefüllt mit "cat". ganz oben eine Zeile eingefügt. In A2 die Zeichenfolge "#!/bin/bash" eingefügt. Das Ganze in eine "cat-dateilistea_b.sh" hineinkopiert und ausführbar gemacht. Zuvor noch per suchen und ersetzen ein paar Tabulaturen in der Textdatei eliminiert.
Das ganze ausgeführt.
War eine Sache von nicht mehr als 5 Minuten
OK, nicht ganz soooo wie Ihr Euch das hier so vorzustellen wünscht. Aber, es hat funktioniert
Danke und einen schönen Abend
Sonya
Re: cat, viele Dateien in verschiedenen Verzeichnissen?
jede Lösung führt ans Zielsonya hat geschrieben: War eine Sache von nicht mehr als 5 Minuten
OK, nicht ganz soooo wie Ihr Euch das hier so vorzustellen wünscht. Aber, es hat funktioniert
hauptsache es funkt
Gruß
gms