我有一个 python 脚本,用于记录要动态生成的 URL。我希望能够cat logfile.log
看到日志的输出,然后能够单击这些链接,而不是将它们复制/粘贴到我的浏览器窗口中。如果我编写一个 shell 脚本,或者如果我只通过 cat/head/tail 运行它,这是否可行?
答案1
使链接可点击。日志文件,您需要创建一个日志文件.html文件格式。作为 python 日志模块的灵感来自log4j。 有一个HTML布局在 log4j 日志模块中。
但要做到这一点,您必须非常了解 Python 格式,并且还要学习如何编写自己的格式。如果您已经知道如何编写自己的格式,那么将 .log 文件格式化为 .html 文件会更容易。我找到了一个主题表单,您可以在其中了解如何以 HTML 格式格式化日志文件,或为日志文件输出着色。请访问此线。
答案2
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 :仅输出已 grep 的内容
- (http|https) :是“或”
- az :全部小写
- AZ :全部大写
- . : 是点
- \?: 是 ?
- *:是重复[...]组
- uniq :将删除所有重复项
将其放入 bash 中
#!/bin/sh
echo '---------------------------------------------'
echo 'Now starting'
echo '---------------------------------------------'
while read p;
do x-www-browser "$p";
done < myurls.txt
bash 应该为每个 URL 源打开一个新选项卡:
答案3
事实证明,通过谷歌搜索我找到了我想要的答案:
Tl;dr - 取决于您的终端仿真器。我使用的是 OSX。这对我来说有效:
OSX Lion 之前版本:
cmd+ shift+双击 Terminal.app 中的 URL,它将在默认程序中打开。
OSX Lion:
cmd+双击(否则您将进入全屏模式)。