2016-11-30 5 views
0

Ich möchte ein Skript zu meiner Website hinzufügen.
Aber Problem in einer Sache: Website enthalten Hunderte von HTML-Dateien.
Also muss ich einen Befehl zum Einfügen von Code nach body-Tag erstellen. Wie kann ich das machen?Der Fehler in find und sed Befehl in Linux?

find . -name '*.html' exec sed -i 's/<\/body>/<script src="1.js"><\/script><\/body>/g' {} \; 

Aber es kann nicht funktionieren. Bitte beheben Sie diesen Befehl

+1

Fehler? Außerdem gibt es einen Tippfehler. Sie fehlen '-' vor der exec – nu11p01n73R

+0

nein. Auf ubuntu auf meinem Server funktioniert einwandfrei. Aber in anderen - nein. –

+0

Wie kann ich nach 7 Zeile in meiner HTML-Datei. Ich habe diese Flagge vergessen –

Antwort

0

, die auch für mich funktioniert:

find * -name "*.html" | xargs -L1 -I{} sed -i 's/<\/body>/<script src="1.js"><\/script><\/body>/g' {} 

Änderungen:

  • Pfad ersetzt . mit '*'
  • the'xargs' Werkzeug erhält alle Zeilen aus stdin, und führt den Befehl separat für jede Zeile aus, mit der Möglichkeit, diese Zeile als Argument im Befehl zu übergeben, also in diesem Fall th Es ist der gleiche Ansatz wie find -cmd, aber im Allgemeinen öffnet es eine andere Möglichkeiten (siehe das Xargs-Handbuch).
0

Es ist ein Fehler in Befehl - ersetzen exec mit -exec und sollte in Ordnung sein.

find . -name '*.html' exec sed -i 's/<\/body>/<script src="1.js"><\/script><\/body>/g' {} \;