Wie String an mehrere Dateien anhängen?

Browny!

Lieutenant
Registriert
Okt. 2008
Beiträge
637
Hallo liebe Gemeinde,

ich versuche mir gerade ein Script zu stricken welches mir einen String (oder den Inhalt einer Datei welche den String enthält) an viele Dateien anzuhängen.

Mit Datei1 >> Datei2 kann ich das ja wunderbar machen, nur eben bei einer Datei.

Das ganze soll auf Linux basieren, also ein Shell Script?

Wäre euch sehr dankbar wenn ihr ein paar Vorschläge für mich hättet.
 
vielleicht:

Datei1 >> [Datei]*

[a,b,x]* --> steht für Dateien die mit a, b oder x angfangen

[!c-m]* --> steht für Dateien die die nicht mit c bis m anfangen...

&& logische Verknüpfung und

? beliebiges Zeichen etc.

mehr hab ich mal auf die schnelle nicht und bin auch nicht der bash und linux Freak
 
Headb@nger71 schrieb:
vielleicht:

Datei1 >> [Datei]*

[a,b,x]* --> steht für Dateien die mit a, b oder x angfangen

[!c-m]* --> steht für Dateien die die nicht mit c bis m anfangen...

&& logische Verknüpfung und

? beliebiges Zeichen etc.

mehr hab ich mal auf die schnelle nicht und bin auch nicht der bash und linux Freak

Genau das hab ich schon alles durch =)

@ bu1137

Danke für den Tipp mit "tee" ... les ich mich mal ein!
 
Wie siehts aus mit:
Code:
for file in $(find . -name 'wildcard'); do
    # was auch immer du mit $file anstellen willst

    # edit: gerade gesehen, dass du einen string anhängen willst, also:
    echo "string" >> $file
done
 
Zuletzt bearbeitet:
Browny! schrieb:
ich versuche mir gerade ein Script zu stricken welches mir einen String (oder den Inhalt einer Datei welche den String enthält) an viele Dateien anzuhängen.

Mit Datei1 >> Datei2 kann ich das ja wunderbar machen, nur eben bei einer Datei.

Das ganze soll auf Linux basieren, also ein Shell Script?
Schleife drumherum, die es für die gewünschten Dateien wiederholt, z.B. für alle Dateien im aktuellen Verzeichnis:

for i in *; do cat Datei1 >> "$i"; done
 
tee scheint mir immernoch das einfachste. laesst sich auch ganz gut mit find / xargs kombinieren.

echo blah | tee -a *.txt

bzw.

tee -a *.txt < input.txt

wobei hier die datei input.txt nicht im selben ordner sein sollte, oder halt eine andere endung haben muesste ;)
 
Zurück
Oben