2010-12-08 1 views

Antwort

1

Wenn Sie nicht perl

perl -pi -e "s/upc_barrier/start = clock();\nupc_barrier\nend = clock() ;/g" ALL_FILES 
+0

kann ich diesen Befehl direkt in der Befehlszeile geben? Ich habe den Fehler "Kann ALL_FILES nicht öffnen: Keine solche Datei oder Verzeichnis." –

+1

... 'ALL_FILES' wird durch Dateien ersetzt, die Sie ersetzen möchten. Wenn Sie nur alle Dateien ersetzen möchten, ersetzen Sie es durch '*' – ajreal

3

Die sed-Version verwenden nichts dagegen:

sed -i 's/\(upc_barrier\)/start = clock\(\);\n\1\nend = clock\(\);/' FILES 

Offensichtlich ersetzen FILES mit dem, was Dateien, die Sie wollen auf arbeiten. Der -i-Operator sagt sed, den modifizierten Stream zurück in die Datei zu schreiben.

+0

Vielen Dank Brent. –

+0

Keine Rückverweise erforderlich. sed hat '&' was im Ersetzungstext verwendet wird, wird durch das ersetzt, auf das Sie abgestimmt haben: 'sed 's/upc_barrier/start = clock(); \ n & \ nend = clock(); /'' – SiegeX