• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Bash script

compi

Member
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.
 

spoensche

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

Du suchst mit dem Befehl
Code:
find
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:
for datei=$(find /pfad/zu/den/dateien -name \*.txt); do
     .....# hier erfolgt die Verarbeitung
done
 

HBtux

Member
Code:
#/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
 
OP
C

compi

Member
ich habe viele Internet Radio playlisten.

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

Allerdings mit dem Dateinamen davor!
 
OP
C

compi

Member
HBtux schrieb:
Code:
#/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.
 

spoensche

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