Hi, ich moechte den Inhalt von Dateien immer nach dem gleichen Schema modifizieren (mit sed). Folgende Eingabe gibt mir eine Liste mit den Dateien. Wie kann ich nun jede einzelnen Zeile der Reihe nach abarbeiten ? user@host:~> find . -name Root | grep "CVS/Root" Kurze Antwort genuegt. Danke ! Markus
Am Die, 26 Mär 2002 schrieb Markus Assfalg:
Hi,
ich moechte den Inhalt von Dateien immer nach dem gleichen Schema modifizieren (mit sed). Folgende Eingabe gibt mir eine Liste mit den Dateien. Wie kann ich nun jede einzelnen Zeile der Reihe nach abarbeiten ?
user@host:~> find . -name Root | grep "CVS/Root"
Kurze Antwort genuegt.
Sowas sollte gehen for i in `find . -name Root | xargs grep -l "CVS/Root"`; do sed -Anweisung done Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Am Die, 26 Mär 2002 schrieb Christoph Maurer:
Am Die, 26 Mär 2002 schrieb Markus Assfalg:
Hi,
ich moechte den Inhalt von Dateien immer nach dem gleichen Schema modifizieren (mit sed). Folgende Eingabe gibt mir eine Liste mit den Dateien. Wie kann ich nun jede einzelnen Zeile der Reihe nach abarbeiten ?
user@host:~> find . -name Root | grep "CVS/Root"
Kurze Antwort genuegt.
Sowas sollte gehen for i in `find . -name Root | xargs grep -l "CVS/Root"`; do sed -Anweisung done
Ach jetzt, wo ich Davids Mail gelesen habe, verstehe ich, was Du willst, Du willst alle */CVS/Root Dateien haben, dann ist sein Ansatz brauchbarer (da schneller). Ich hatte gedacht, Du wolltest alle Dateien, die Root heißen und "CVS/Root" enthalten. Aber ein bißchen denken hätte mich da auch selber draufbringen können. Es geht aber auch for i in `find . -name Root grep "CVS/Root"`; do sed-Anweisung done Gruß Christoph -- Christoph Maurer - 52072 Aachen - Tux#194235 mailto:christoph-maurer@gmx.de - http://www.christophmaurer.de Auf der Homepage u.a.: Installation von SuSE 7.0 auf Notebook Acer Travelmate 508 T, Elektrotechnik an der RWTH Aachen
Hallo, Am Dienstag, 26. März 2002 08:55 schrieb Markus Assfalg:
ich moechte den Inhalt von Dateien immer nach dem gleichen Schema modifizieren (mit sed). Folgende Eingabe gibt mir eine Liste mit den Dateien. Wie kann ich nun jede einzelnen Zeile der Reihe nach abarbeiten ?
user@host:~> find . -name Root | grep "CVS/Root"
Grundsätzlich geht:
$ find . -name Root -regex ".*CVS/Root.*" | xargs -n 1 -i meinbefehl {}
$ find . -name Root -regex ".*CVS/Root.*" -exec meinbefehl {} \;
Da aber `sed' immer auf die Standardausgabe schreibt, was Du mit > umleiten
mußt, kommst Du um die `for'-Schleife nicht herum.
$ for i in $(find blabla); do sed /blabla/ $i >$i~ ; done
Gruß
Bertram
--
Bertram Scharpf
participants (3)
-
Bertram Scharpf
-
Christoph Maurer
-
Markus Assfalg