У меня есть скрипт Python, который регистрирует URL-адреса, которые будут созданы на лету. Я хотел бы иметь возможность cat logfile.log
чтобы я мог видеть выходные данные журнала, а затем иметь возможность щелкать эти ссылки, а не копировать / вставлять их в окно моего браузера. Возможно ли это, если я создаю сценарий оболочки или даже лучше, если я просто запускаю его через cat / head / tail?
3 ответа
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:
Оказалось, что поиск в Google дал мне ответ, который я искал:
Взято из этого вопроса переполнения стека
Tl; dr - зависит от вашего эмулятора терминала. Я использую OSX. Это работает для меня:
До OSX Lion:
cmd+shift+двойной щелчок по URL-адресу в Terminal.app, и он откроется в программе по умолчанию.
OSX Lion:
cmd+двойной щелчок (иначе вы войдете в полноэкранный режим).
Чтобы сделать ссылки кликабельными из файлов .log , вам нужно создать файл журнала в формате .html . В качестве модуля регистрации Python вдохновлен log4j . В модуле журналирования log4j есть HTMLLayout.
Но чтобы это произошло, вы должны хорошо знать форматирование Python, а также научиться писать свое собственное форматирование. Если вы уже знаете, как написать собственное форматирование, вам будет проще отформатировать файл .log в файл .html. Я нашел форму потока, в которой вы можете получить представление о форматировании файла журнала в HTML или окраске вывода файла журнала. Пожалуйста, посетите эту тему.