免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4849 | 回复: 15
打印 上一主题 下一主题

[文本处理] 提取文件中的url [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-29 16:18 |只看该作者 |倒序浏览
有一个css文件,里面有包含一些url,比如以下内容:

.button{width:100px;background-url('/static/images/smile.jpg')}

.button:hover {width:100px;color:blue;background-url('/static/images/smile_hover.jpg')}



url的位置不固定,我想把所有的这些url都提取到一个文件中保存,类似:

/static/images/smile.jpg
/static/images/smile_hover.jpg


请教用awk能够实现吗?或者用其他命令能否实现?

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
2 [报告]
发表于 2014-06-29 16:40 |只看该作者
  1. grep -Po "(?<=url\(\').*(?=\'\))" urfile
复制代码

论坛徽章:
0
3 [报告]
发表于 2014-06-29 16:55 |只看该作者
受教了!!

不知道awk  sed完成这项工作,是否有可能?只是想拓展下自己的思路哈

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
4 [报告]
发表于 2014-06-29 19:14 |只看该作者
回复 1# lemoncoral
  1. awk -F\' '{print $2}' urfile
复制代码

论坛徽章:
0
5 [报告]
发表于 2014-06-29 20:24 |只看该作者
回复 4# 关阴月飞

精彩!貌似你的这个解法是针对每一行只有一个url地址的情况,如果每一行可能有不止一个,有多个url的情况,该作何解呢:

.button{url(../static/a.jpg)};   .button_a{url(../static/b.jpg)} ........


   

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
6 [报告]
发表于 2014-06-29 20:26 |只看该作者
回复 5# lemoncoral


    (../static/a.jpg)  url 都是在括号里吗?

论坛徽章:
0
7 [报告]
发表于 2014-06-29 20:30 |只看该作者
回复 6# 关阴月飞

是的,url都是在括号里面的


   

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
8 [报告]
发表于 2014-06-29 20:32 |只看该作者
  1. sed -e "s/^.*('//g;{s/').*//g}" urfile
复制代码
一行一个的这个应该可以

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
9 [报告]
发表于 2014-06-29 20:33 |只看该作者
回复 7# lemoncoral

试试这个:
  1. awk -F '(' 'NF>1{print $NF}' RS=')' urfile
复制代码

论坛徽章:
7
天秤座
日期:2014-08-07 13:56:30丑牛
日期:2014-08-27 20:34:21双鱼座
日期:2014-08-27 22:02:21天秤座
日期:2014-08-30 10:39:11双鱼座
日期:2014-09-21 20:07:532015年亚洲杯之日本
日期:2015-02-06 14:00:282015亚冠之大阪钢巴
日期:2015-11-02 14:50:19
10 [报告]
发表于 2014-06-29 20:37 |只看该作者
本帖最后由 MeRcy_PM 于 2014-06-29 20:40 编辑

一行多个的,grep的时候在.*后面加个?,用懒惰即可。
  1. grep -Po "(?<=url\(\').*?(?=\'\))" urfile
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP