Как удалить указанную c строку в файле, используя find & sed - PullRequest
0 голосов
/ 17 апреля 2020

Весь мой индекс. php были введены с

<script type='text/javascript' src=’https://www.example.com/home?v=2.2.0′></script> 

в 1-й строке.

Так что я хочу просто удалить эту конкретную строку "<script type=’text/javascript’ src=’https://www.example.com/home/public′></script>" через терминал в Cpanel под управлением CentOS

Я провёл небольшое исследование и обнаружил следующее:

find . -name “index.php” -exec sed -i “s#<script type=’text/javascript’ src=’https://www.example.com/home?v=2.2.0′></script>##g"; {} +

Терминал показывает ошибку: find: отсутствует аргумент `-exe c 'bash: {} +: команда не найдена

Ответы [ 2 ]

2 голосов
/ 17 апреля 2020

Вы только что слишком быстро закончили свою очередь! ; должно быть в конце строки.

find . -name index.php -exec sed -i "s#<script type='text/javascript' src='https://www.example.com/home'></script>##g" {} +;

(будьте осторожны, в вашем примере есть некоторые цитаты / анти-цитаты или цитаты * c ... это может сбить с толку)

Но я вижу в вашем вопросе 2 информации (первая строка + шаблон).

Самый простой способ (не единственный) - не удалить первую строку все индексы. php файлы?

Если это так, просто используйте:

find . -name index.php -exec sed -i '1d' {} +;

Вы также можете использовать for вместо exec:

for i in `find . -name index.php`; do sed -i '1d' $i; done;

В стиле MacOS / FreeBSD просто добавьте '' в sed:

for i in `find . -name index.php`; do sed -i '' '1d' $i; done;

Если вы хотите удалить весь шаблон, вам нужно будет защитить специальные символы и т. Д. и вам нужно быть осторожным, чтобы не удалить, например, тот же, но полезный шаблон из любого другого места в ваших файлах . Так что будь осторожен.

0 голосов
/ 17 апреля 2020

Я предполагаю, что это потому, что вы используете ха sh символ # в качестве разделителя регулярных выражений. Мой личный фаворит там использует знак @ для того же самого, таким образом:

find . -name 'index.php' -exec sed -i "s@<script.*example.com.*</script>@@" {} \;
...