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

eine Datei an mehrere Dateien anfügen

Hallo zusammen,

ich möchte eine Textdatei an mehrere andere anfügen. Die an die angefügt werden sollen müssen jedoch vorher mit 'find' gesucht werden und das habe ich nicht hin bekommen.

Das bedeutet. Verteilt über das Dateisystem liegen Textdateien mit dem gleichen Namen (MY_LOG.TXT). An einem exakt definiertem Pfad liegt die Textdatei LOG_EXT.TXT. z.B.:

/test/LOG_EXT.TXT

Nun sollen mit find alle MY_LOG.TXT gefunden werden und mi cat >> ... der Inhalt von LOG_EXT.TXT an alle gefundenen MY_LOG.TXT angefügt werden.

Ich hoffe ich konnte das halbwegs verständlich erklären. Bekomme ich das irgendwie hin?

gruß
 
... oder mit einem Einzeiler:

Code:
find / -name 'MY_LOG.TXT' -exec cat /test/LOG_EXT.TXT >> {} \;

Gruß
ginka
 
ginka schrieb:
... oder mit einem Einzeiler:

Code:
find / -name 'MY_LOG.TXT' -exec cat /test/LOG_EXT.TXT >> {} \;

Gruß
ginka
Sag mal probiert ihr auch aus, was ihr überhaupt schreibt? Das funktioniert nämlich nicht, sondern schreibt das alles in eine Datei namens '{}'.

(a=append_to_me(MY_LOG), r=to_be_appended(LOG_EXT))
Code:
$ 
$ find . -name a -exec cat r >> {} \;
$ ls
-rw-r--r--  1 jengelh users  24 2006-08-11 08:35 {}
[/code]
 
Hallo pixel,

als Einzeiler krieg ich es nicht hin, aber über eine Hilfsdatei funktioniert es so:

find / -name MY_LOG.TXT > /tmp/liste
for i in `cat /tmp/liste`
do
cat /test/LOG_EXT.TXT >> $i
done


Gruß
Olaf
 
jengelh schrieb:
Sag mal probiert ihr auch aus, was ihr überhaupt schreibt? Das funktioniert nämlich nicht, sondern schreibt das alles in eine Datei namens '{}'.

Du hast Recht...... :shock:

Und es geht doch mit einem Einzeiler - diesmal getestet:

Code:
find / -name 'MY_LOG.TXT' -exec sh -c 'cat /test/LOG_EXT.TXT >> {}' \;

Gruß
ginka
 
Oben