У меня есть скрипт Python, который регистрирует URL-адреса, которые будут созданы на лету. Я хотел бы иметь возможность cat logfile.log чтобы я мог видеть выходные данные журнала, а затем иметь возможность щелкать эти ссылки, а не копировать / вставлять их в окно моего браузера. Возможно ли это, если я создаю сценарий оболочки или даже лучше, если я просто запускаю его через cat / head / tail?

3 ответа3

1
cat urls.log | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" | sort | uniq > myurls.txt

И вывод будет:

pi@berry:~s$ cat urls.html | grep -Eo "(http|https)://[\da-z./?A-Z0-9\D=_-]*" | uniq
http://schema.org/WebPage
http://www.google.com/imghp?hl=en
http://maps.google.com/maps?hl=en
https://play.google.com/?hl=en
http://www.youtube.com/?tab=w1
http://news.google.com/nwshp?hl=en
https://mail.google.com/mail/?tab=wm
https://drive.google.com/?tab=wo
http://www.google.com/intl/en/options/
http://www.google.com/history/optout?hl=en
https://accounts.google.com/ServiceLogin?hl=en
http://www.google.com/
https://www.google.com/culturalinstitute/project/the-holocaust?utm_source=google
https://plus.google.com/116899029375914044550
  • Объяснение:
    • grep -E: аналогично egrep
    • grep -o: выводит только то, что было записано
    • (http | https): это либо / или
    • az: все строчные
    • А-Я: все дела обстоят лучше
    • , : точка
    • \?: является ?
    • *: повторить группу [...]
    • Uniq: удалит все дубликаты

Положить в баш

#!/bin/sh
echo '---------------------------------------------'
echo 'Now starting'
echo '---------------------------------------------'


while read p;
  do   x-www-browser "$p";
done < myurls.txt

Bash должен открыть новую вкладку для каждого источника URL:

0

Оказалось, что поиск в Google дал мне ответ, который я искал:

Взято из этого вопроса переполнения стека

Tl; dr - зависит от вашего эмулятора терминала. Я использую OSX. Это работает для меня:

До OSX Lion:

cmd+shift+двойной щелчок по URL-адресу в Terminal.app, и он откроется в программе по умолчанию.

OSX Lion:

cmd+двойной щелчок (иначе вы войдете в полноэкранный режим).

0

Чтобы сделать ссылки кликабельными из файлов .log , вам нужно создать файл журнала в формате .html . В качестве модуля регистрации Python вдохновлен log4j . В модуле журналирования log4j есть HTMLLayout.

Но чтобы это произошло, вы должны хорошо знать форматирование Python, а также научиться писать свое собственное форматирование. Если вы уже знаете, как написать собственное форматирование, вам будет проще отформатировать файл .log в файл .html. Я нашел форму потока, в которой вы можете получить представление о форматировании файла журнала в HTML или окраске вывода файла журнала. Пожалуйста, посетите эту тему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .