PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehle zur Ordnerstruktur / Dateiinhalt Abbildung gesucht



proterra
30.09.11, 14:39
Hoffe ich bin hier richtig mit meiner Frage.

Alleine schon an der Fragestellung seht Ihr: Ich bin Newbie. Hoffe aber ihr könnt mir helfen und haut nicht sofort auf mich drauf ;-)

Ich will eine komplexe Ordnerstruktur (bestehend aus Ordnern mit Unterordnern und im untersten Ordner eine Index-Datei) samt Dateiinhalt in einer neuen Textdatei abbilden: also die Inhalte und den Ordnerpfad

Grundsätzlich gehört die Ordnerstruktur zu einer Webseite. Ziel ist es die neue Textdatei hinterher in eine Datenbank zu migrieren.

Meine Recherchen im Netz brachten mich zu Linux

ThorstenHirsch
30.09.11, 15:59
Häääää?

Mach mal ein Beispiel. Ordnerstruktur, Datei, Datenbank. Warum eigentlich der Umweg über die Datei?

Newbie314
30.09.11, 18:08
ls -r

probiere mal man ls ...

klemens
01.10.11, 00:08
Hallo,

Wohl eher
ls -R

Ganz spontan wäre mir
find * > /da/wo/es/hin/soll/liste.txt

eingefallen.

proterra
01.10.11, 07:10
Häääää?

Mach mal ein Beispiel. Ordnerstruktur, Datei, Datenbank. Warum eigentlich der Umweg über die Datei?


die Ordner sind nach Datum aufgeteilt, der letzte Unterordner ist einer mit einer forlaufenden Nummer (ID) - Beispiel:

HauptOrdner 1: 2011
Subordner: 09
Subordner2: 30
Subordner3: 12345

Im Subordner 3 ist eine index.html mit entsprechenden Inhalten, die auch ausgelesen werden soll

Also Ergebnis würde ich in einer neuen Textdatei folgendes Schema abbilden:
12345; 2011/09/30/12345;Inhalte aus der textdatei

buzz768
01.10.11, 09:57
$ mkdir -p 2011/09/30/12345 2011/10/01/67890
$ echo foo > 2011/09/30/12345/index.html
$ echo bar > 2011/10/01/67890/index.html
$ find 2011/ -type f -execdir ls -1 .. \; -exec dirname {} \; -exec cat {} \; | sed 'N;N;s/\n/;/g'
12345;2011/09/30/12345;foo
67890;2011/10/01/67890;bar


Edit: funktioniert so nur bei einem Unterverzeichnis pro Datum...

PS
So sollte es gehen:


find 2011/ -type f -exec dirname {} \; -exec cat {} \; | sed 'h;s/^.*\///;G;N;s/\n/;/g'