Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] Bash script

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
compi
Member
Member
Beiträge: 68
Registriert: 20. Jun 2006, 20:20

[gelöst] Bash script

Beitrag von compi »

Ich habe ein Problem!

Ich habe viele Dateien ca. 12.000

dern Inhalt (jeweils 1 Zeile) und deren Dateinamen ich gerne in einer Datei hätte.

Beispiel:

Name:Datei1.txt
Inhalt: bla bla1

Name: Datei2.txt
Inhalt: bla bla2

Ziel
Name: Datei3.txt
Inhalt:

Datei1#bla bla1
Datei2#bla bla2

kann mir jemand von euch helfen.
Zuletzt geändert von compi am 24. Jan 2010, 18:55, insgesamt 1-mal geändert.
open SuSE 10.2 X86_64
spoensche
Moderator
Moderator
Beiträge: 7539
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: Bash script

Beitrag von spoensche »

Was sollen die Dateien mit jeweils nur einer Zeile Inhalt bezwecken?

Du suchst mit dem Befehl nach den entsprechenden Dateien und verwendest eine "for" Schleife für die Verarbeitung der Dateien. Pro Schleifendurchlauf hängst du dann den Dateinamen und den Inhalt an die Datei an, die quasi als Inhaltsverzeichnis dienen soll.

Als Denkanstoss:

Code: Alles auswählen

for datei=$(find /pfad/zu/den/dateien -name \*.txt); do
     .....# hier erfolgt die Verarbeitung
done
Benutzeravatar
HBtux
Member
Member
Beiträge: 203
Registriert: 18. Jul 2009, 22:52
Wohnort: $HOME

Re: Bash script

Beitrag von HBtux »

Code: Alles auswählen

#/bin/bash

#hier die Datei3.txt vorher leer machen.
> Datei3.txt

find /tmp/test -name "*.txt" | while read AKT_FILE; do

        echo "`basename $AKT_FILE`#`cat $AKT_FILE`" >> Datei3.txt

done
Viele Grüße
HBtux
compi
Member
Member
Beiträge: 68
Registriert: 20. Jun 2006, 20:20

Re: Bash script

Beitrag von compi »

Danke, aber ich vermute das Script mekert weil im Dateinamen Leerzeichen sind?
open SuSE 10.2 X86_64
abgdf
Guru
Guru
Beiträge: 3319
Registriert: 13. Apr 2004, 21:15

Re: Bash script

Beitrag von abgdf »

Sag' doch bitte erstmal, wozu das gut sein soll.
compi
Member
Member
Beiträge: 68
Registriert: 20. Jun 2006, 20:20

Re: Bash script

Beitrag von compi »

ich habe viele Internet Radio playlisten.

Leider pro Station eine Datei und ich wollte dies zusammenfügen.

Allerdings mit dem Dateinamen davor!
open SuSE 10.2 X86_64
compi
Member
Member
Beiträge: 68
Registriert: 20. Jun 2006, 20:20

Re: Bash script

Beitrag von compi »

HBtux hat geschrieben:

Code: Alles auswählen

#/bin/bash

#hier die Datei3.txt vorher leer machen.
> Datei3.txt

find /tmp/test -name "*.txt" | while read AKT_FILE; do

        echo "`basename "$AKT_FILE"`#`cat "$AKT_FILE"`" >> Datei3.txt

done
Danke so funktioniert es auch mit Leerzeichen in den Dateinamen.
open SuSE 10.2 X86_64
spoensche
Moderator
Moderator
Beiträge: 7539
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: Bash script

Beitrag von spoensche »

Erledige bitte noch die "Formalitäten" und markiere den Thread als gelöst. ERsten Beitrag editieren und ein [gelöst] im Titel einfügen.
Antworten