2016-11-30 4 views
0

Я хочу добавить некоторый скрипт на свой сайт.
Но проблема в одном: сайт включает сотни html-файлов.
Поэтому мне нужно создать команду для вставки кода после тега body. Как я могу это сделать?Ошибка в поиске и команде sed в Linux?

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

Но он не может работать. Пожалуйста, исправьте эту команду

+1

Любые ошибки? Также есть опечатка. Вам не хватает '-' перед exec – nu11p01n73R

+0

nope. На ubuntu на моем сервере отлично работает. Но в другом - нет. –

+0

Как я могу добавить после 7 строк в моем html-файле. Я забыл об этом флаге –

ответ

0

Это также работает для меня:

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

Изменения:

  • заменил путь . с '*'
  • инструмент
  • the'xargs' получает все строки из stdin и выполняет команду отдельно для каждой строки, с возможностью передать эту строку в качестве аргумента в команде, поэтому
  • в этом случае это тот же подход, что и find -cmd, но в целом он открывает другие возможности (ознакомьтесь с руководством xargs).
0

Ошибка при команде: заменить exec на номер -exec, и все должно быть хорошо.

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