Взгляните на WWW:: Механизируйте (Примеры по http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize/Examples.pod). Это берет Вашу веб-страницу в качестве объекта и делает все элементы доступными с помощью методов.
Например,
$m->get("https://lists.ccs.neu.edu/bin/admindb/$listname");
$m->set_visible( $password );
$m->click;
Существуют порты для (al наименьшее) рубин и Python, также.
Лично мне нравится опция -r
в sed
, которая разрешает расширенные регулярные выражения, поэтому скобки не нужно экранировать:
sed -r "s#(Comment=)(.*)#\1'<span size=\"xx-large\">\2</b>'#" 3dchess.sh
Обратите внимание, что, поскольку вы хотите использовать '
в замене, вы не можете использовать sed' s /// '
, но вместо этого нужно использовать sed "s ///"
. Кроме того, поскольку вам необходимо иметь /
как часть шаблона, вы не можете использовать его в качестве разделителя, поэтому вам нужно выбрать другой символ. Я выбрал #
, но вы можете использовать все, что захотите. Как сказал Грэм, как только вы убедитесь, что все работает нормально, добавьте переключатель -i
, чтобы он редактировал файл на месте.
sed 's:^Comment=\(.*$\):Comment='\''<span size="xx-large">\1</b>'\': \
$HOME/3dchess.sh
Добавьте -i
, когда будете уверены, что у вас есть то, что вы хотите.
s:x:y:
- Это общая схема замены, в основном заменяем x
на y
. Очевидно, что между двоеточиями у нас гораздо больше! Обычно :
- это /
, но sed
берет все, что идет после s
, и использование /
здесь означает, что в шаблоне его нужно экранировать.
^Comment=
- regex-сопоставление Comment=
в начале строки ( ^
). Хорошая практика, поскольку возможно (хотя и маловероятно) получить это в другом месте, что вызовет проблемы.
\(.*$\)
- соответствует всему ( .*
) до конца строки ( $
). Окружение с \( \)
создает обратную ссылку для использования позже.
'\''
- закрыть кавычки ''
, поставить литерал ''
и снова открыть кавычки. Альтернативный метод по сравнению с методом @terdon.
Комментарий=\1
- строка замены, \1
- обратная ссылка из предыдущей строки.
'\':
- закрытые кавычки, ставим литерал '
, затем заключительное двоеточие.