Самый легкий способ извлечь URL из страницы HTML с помощью sed или awk только

Выполнение модели Simulink непосредственно из сценария (а не в интерактивном режиме) использование эти sim команда. Можно сделать, вещам нравится, берут параметры от переменной рабочей области, и неоднократно работают sim в цикле для моделирования чего-то при варьировании параметра, чтобы видеть, как поведение изменяется, и изобразите результаты в виде графика с любыми графическими командами, которые Вы любите. Намного легче, чем попытка сделать это в интерактивном режиме, и это дает Вам намного больше гибкости, чем блоки "осциллографа" Simulink при визуализации результатов. (хотя Вы не можете использовать его для наблюдения то, что продолжается в в реальном времени, в то время как моделирование работает)

А, действительно важная вещь знать DstWorkspace и SrcWorkspace опции simset команда. Они управляют, где "К Рабочей области" и "От Рабочей области" блоки получают и помещают свои результаты. Dstworkspace значения по умолчанию к текущей рабочей области (например, если Вы звоните sim из функции "К Рабочей области" блоки, обнаружится как переменные, доступные из той же самой функции), но SrcWorkspace значения по умолчанию к базовому рабочему пространству и если Вы хотите инкапсулировать свой вызов к sim, Вы захотите установить SrcWorkspace на [1 111], таким образом, будет чистый интерфейс к обеспечивающим/получающим входным параметрам моделирования и выводам. Например:

function Y=run_my_sim(t,input1,params)
% runs "my_sim.mdl" 
% with a From Workspace block referencing I1 as an input signal
% and parameters referenced as fields of the "params" structure
% and output retrieved from a To Workspace block with name O1.
opt = simset('SrcWorkspace','current','DstWorkspace','current');
I1 = struct('time',t,'signals',struct('values',input1,'dimensions',1));
Y = struct;
Y.t = sim('my_sim',t,opt);
Y.output1 = O1.signals.values;

56
задан casperOne 25 January 2011 в 13:15
поделиться

5 ответов

Вы можете легко сделать это с помощью следующего регулярного выражения, которое довольно хорошо поиск URL-адресов:

\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))

Я взял это из статьи Джона Грубера о том, как найти URL-адреса в тексте .

Это позволяет вам найти все URL-адреса в файле f.html следующим образом:

cat f.html | grep -o \
    -E '\b(([\w-]+://?|www[.])[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/)))'
4
ответ дан 26 November 2019 в 17:07
поделиться

Пример, поскольку вы не предоставили образец

awk 'BEGIN{
RS="</a>"
IGNORECASE=1
}
{
  for(o=1;o<=NF;o++){
    if ( $o ~ /href/){
      gsub(/.*href=\042/,"",$o)
      gsub(/\042.*/,"",$o)
      print $(o)
    }
  }
}' index.html
12
ответ дан 26 November 2019 в 17:07
поделиться

You asked for it:

$ wget -O - http://stackoverflow.com | \
  grep -io '<a href=['"'"'"][^"'"'"']*['"'"'"]' | \
  sed -e 's/^<a href=["'"'"']//i' -e 's/["'"'"']$//i'

This is a crude tool, so all the usual warnings about attempting to parse HTML with regular expressions apply.

37
ответ дан 26 November 2019 в 17:07
поделиться

Я предполагаю, что вы хотите извлечь URL-адрес из некоторого текста HTML, а не анализировать HTML (как один из комментарии подсказывают). Вы не поверите, но кто-то уже сделал это .

ОТ: На веб-сайте sed есть много хорошей информации и много интересных / сумасшедших сценариев sed . Вы даже можете играть в Sokoban в sed!

5
ответ дан 26 November 2019 в 17:07
поделиться

Вы также можете сделать что-то подобное (при условии, что у вас установлена рысь)...

Версии рыси < 2.8.8

lynx -dump -listonly my.html

Версии рыси >== 2.8.8 (благодаря @condit)

lynx -dump -hiddenlinks=listonly my.html
55
ответ дан 26 November 2019 в 17:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: