Estaba buscando lo mismo y finalmente escribí una herramienta basada en la respuesta de user43791 .
Por lo tanto, lo que está buscando es tal vez algo así:
https://github.com/atar-axis/TUM-tools/blob/master/moodle_grabber/moodle_grabber.sh
Debería ser muy fácil adaptar esto a cualquier otro sitio de shibboleth y se basa únicamente en wget!
Попробуйте вместо этого:
sed -i "s|$LINEout|$LINEnew|" job.sh
Если под macOS вам нужно указать резервную копию, поэтому вам придется использовать это:
sed -i "" "s|$LINEout|$LINEnew|" job.sh
Примеры:
echo "foo
bar" > sample
cat sample
foo
bar
rep=bar
sed -i.bak "s|$rep|baz|" sample
cat sample
foo
baz
cat sample.bak
foo
bar
Протестировано с macOS X 10.11.6 и BSD sed
OK нашел ее. Спасибо @maulinglawns за ваши хиты ;) На самом деле разделители нужно менять так:
sed -i "s:$LINEout:$LINEnew:" job.sh
Обратите внимание, что BSD (например, Apple OS/X) используют sed -i '' ...
для редактирования на месте без резервного копирования, а GNU использует sed -i ...
. В большинстве других систем sed
не поддерживает редактирование на месте.
Оба получили это из perl
с опцией -i
. Поэтому, для переносимости, вы можете захотеть вернуться к perl
, который также решит проблемы со специальными символами в переменной:
A=$LINEout B=$LINEnew perl -i -pe 's/\Q$ENV{A}\E/$ENV{B}/g' job.sh