У меня ошибка URL в нескольких HTML-файлах, которые мне нужно найти и заменить.
В настоящее время мои страницы показывают:
src="//https:
и мне нужно найти и заменить все на:
src="https:
Кто-нибудь знает способ сделать это на Linux?
У меня ошибка URL в нескольких HTML-файлах, которые мне нужно найти и заменить.
В настоящее время мои страницы показывают:
src="//https:
и мне нужно найти и заменить все на:
src="https:
Кто-нибудь знает способ сделать это на Linux?
Эта команда sed должна сделать это:
sed -i -e 's/src="\/\/https:/src="https:/g' your_file
Простой тест:
$ echo 'some text src="//https: some more text' | \
sed -e 's/src="\/\/https:/src="https:/g'
some text src="https: some more text
Поиск replace multiple files [linux]
нашел несколько ответов, но мне все равно. Слишком много лишнего использования cat
, ls
чтобы получить список имен файлов и тому подобное. Поэтому я выложу более чистый ответ.
Если бы они все были в одном каталоге, я бы использовал такой небольшой скрипт:
#!/bin/bash
mkdir newdir
for i in *.html
do
sed 's!src="//https:!src="https:!g' < "$i" > "newdir/$i"
done
И теперь исправленные файлы будут в newdir
. Обратите внимание, что не HTML-файлы не будут скопированы, поэтому будьте осторожны. Используйте diff -r
для сравнения и проверки результатов.
Если у вас более сложная структура каталогов, проще всего запустить скрипт в каждом каталоге. Если у вас есть только несколько, просто сделайте это вручную. Если у вас их много, вы захотите использовать другой скрипт для обхода дерева и вызвать его. Я не буду вдаваться в это здесь; если вам это нужно, напишите еще один вопрос.
Изменить: Вы также можете использовать -i
для замены на месте, как в ответ Jakuje. Я предпочитаю более осторожный подход, сам.