当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [solved]使用sed和awk提取出浏览器导出的书签的网址
帖子发表于 : 2010-12-28 22:58 
头像

注册: 2010-03-16 12:34
帖子: 107
送出感谢: 0 次
接收感谢: 0 次
我想要提取出从chromium里导出的书签的url。下面是bookmarks.html里的一个片断。请高手帮忙写一个脚本或者命令行来得到url。谢谢

<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
It will be read and overwritten.
DO NOT EDIT! -->
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><H3 ADD_DATE="0" LAST_MODIFIED="1293430925" PERSONAL_TOOLBAR_FOLDER="true">Bookmarks Bar</H3>
<DL><p>
<DT><A HREF="https://www.google.com/reader/view/" ADD_DATE="1286711776" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACRklEQVQ4jW2SS0hUYRTHf3fuvJ1p1CFprCwLwkQzUIpoE1hQYES7chMYCLkpgvZtKmzfJqJWCrWQKNxli2gj2IgwIBiTD6RobGbUeTn3fo8Wd7jmtbM6538e3/8752/gsfL4mAawCpvIyg4A9XyR8mrOrel49ZZod48B4Ptf">Reader</A>


_________________
My Blog: http://stardiviner.tumblr.com/


最后由 numbchild 编辑于 2010-12-28 23:12,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 使用sed和awk提取出浏览器导出的书签的网址
帖子发表于 : 2010-12-28 23:05 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
perl 才适合,一句话,读入到数组。

@url=m"(?:http|mms|rtsp)://[^\s]*"g;


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 使用sed和awk提取出浏览器导出的书签的网址
帖子发表于 : 2010-12-28 23:15 
头像

注册: 2010-03-16 12:34
帖子: 107
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
perl 才适合,一句话,读入到数组。

@url=m"(?:http|mms|rtsp)://[^\s]*"g;


哈哈,第一次得到ee大神的回复,很高兴,问题已解决。最近正在看O'reilly 的sed awk的书。外加linux内核分析,不过这本书不知道哪本书比较正规点,


_________________
My Blog: http://stardiviner.tumblr.com/


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [solved]使用sed和awk提取出浏览器导出的书签的网址
帖子发表于 : 2010-12-31 15:47 
头像

注册: 2007-11-20 10:58
帖子: 137
地址: Hangzhou, China
送出感谢: 0 次
接收感谢: 0 次
使用sed提取链接并且保存到backup.txt文件中,假设导出的书签文件为bookmarks.html。Firefox和Chrome的文件格式类似,方法也几乎相同,除了Firefox有place:开头的链接(?忘记怎么描诉了),所以在Firefox中要剔除这些链接。下面是命令:

Firefox:
代码:
sed -n -e '/place:/!s/\s*<DT><A HREF="\([^"]*\)".*/\1/w backup.txt' bookmarks.html

Chrome:
代码:
sed -n -e 's/\s*<DT><A HREF="\([^"]*\)".*/\1/w backup.txt' bookmarks.html


主要是这个替换命令, 对应着boomarks中的格式, 0或多个空格开始,跟着<DT><A HREF="链接地址" ADD_DATE .......>链接描述</a>
代码:
s/\s*<DT><A HREF="\([^"]*\)".*/\1/p


目的就是要把书签链接地址取出来, 因此弄个正则表达式分组 \([^"]*\) 来表示链接地址部分


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [solved]使用sed和awk提取出浏览器导出的书签的网址
帖子发表于 : 2010-12-31 23:41 
头像

注册: 2010-03-16 12:34
帖子: 107
送出感谢: 0 次
接收感谢: 0 次
realfiona 写道:
使用sed提取链接并且保存到backup.txt文件中,假设导出的书签文件为bookmarks.html。Firefox和Chrome的文件格式类似,方法也几乎相同,除了Firefox有place:开头的链接(?忘记怎么描诉了),所以在Firefox中要剔除这些链接。下面是命令:

Firefox:
代码:
sed -n -e '/place:/!s/\s*<DT><A HREF="\([^"]*\)".*/\1/w backup.txt' bookmarks.html

Chrome:
代码:
sed -n -e 's/\s*<DT><A HREF="\([^"]*\)".*/\1/w backup.txt' bookmarks.html


主要是这个替换命令, 对应着boomarks中的格式, 0或多个空格开始,跟着<DT><A HREF="链接地址" ADD_DATE .......>链接描述</a>
代码:
s/\s*<DT><A HREF="\([^"]*\)".*/\1/p


目的就是要把书签链接地址取出来, 因此弄个正则表达式分组 \([^"]*\) 来表示链接地址部分


谢谢ls讲解的这么详细. :em11


_________________
My Blog: http://stardiviner.tumblr.com/


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译