regex – 使用sed对URL进行复杂更改
我试图在 Linux命令行上解析RSS提要,这涉及使用sed格式化feed的原始输出. 我目前使用此命令: feedstail -u http://www.heise.de/newsticker/heise-atom.xml -r -i 60 -f "{published}> {title} {link}" | sed 's/^(.{3})(.{13})(.{6})(.{3})(.*)/135/' 这为我提供了每行的一些Feed项,如下所示: Sat 20:33 GMT> WhatsApp-Ausfall: Server-Probleme blockieren Messaging-Dienst http://www.heise.de/newsticker/meldung/WhatsApp-Ausfall-Server-Probleme-blockieren-Messaging-Dienst-2121664.html/from/atom10?wt_mc=rss.ho.beitrag.atom 注意最后的长URL.我想缩短它以更好地适应命令行.因此,我想更改我的sed命令以生成以下内容: Sat 20:33 GMT> WhatsApp-Ausfall: Server-Probleme blockieren Messaging-Dienst http://www.heise.de/-2121664 这意味着除了破折号和“.html / blablabla”位之前的七位数字之外,从URL中删除所有内容. 目前我的sed命令只更改日期位中的内容.它必须单独留下标题和开头或URL,然后从中删除它直到达到七位数字.它需要保留它,然后在它之后切断所有东西.哦,是的,我们也需要在这个数字前面留下一个破折号. 我不知道如何做到这一点,并在谷歌搜索后几小时找不到答案.救命? 编辑: 这是一行feedstail的原始输出-u http://www.heise.de/newsticker/heise-atom.xml -r -i 60 -f“{published}> {title} {link}”,万一它有帮助: Sat,22 Feb 2014 20:33:00 GMT> WhatsApp-Ausfall: Server-Probleme blockieren Messaging-Dienst http://www.heise.de/newsticker/meldung/WhatsApp-Ausfall-Server-Probleme-blockieren-Messaging-Dienst-2121664.html/from/atom10?wt_mc=rss.ho.beitrag.atom 编辑2: 看来我只能把输出输出到一个命令中.通过多个管道进行管道似乎打破了局面.我不明白为什么ATM. 解决方法不幸的是(对我而言),我只能考虑使用扩展的regexp语法(在不同系统上使用-E或-r标志)来解决这个问题:... | sed -E 's|(://[^/]+/).*(-[0-9]+).html/.*|12|' 更新:在基本的正则表达式语法中,我能做的最好的是 ... | sed 's|(://[^/]*/).*(-[0-9][0-9]*).html/.*|12|' (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – perf事件文档
- linux中的ffmpeg错误[已关闭]
- LINUX学习:PXE+DHCP+TFTP+Cobbler 无人值守安装CentOS 7
- Getting over the dangers of rm command in Linux---refer
- linux – 为什么我们在x86上需要zone_highmem?
- linux – 为什么gcc在调用“main”之后在程序中放置一个“h
- linux – 是否可以在docker容器中安装ISO?
- 最大堆栈大小,ulimit -s,segfault 11 – 这是如何工作的?
- Common Linux log files name and usage--reference
- LINUX入门:Redhat 7.2 中文显示及中文输入法设置
- /bin/bash^M: bad interpreter: 没有那个文件或目
- linux – 如何编写sed脚本来从文本文件中grep信息
- LINUX入门:CentOS 7 配置本地yum 源
- 15 Linux Split and Join Command Examples to M
- SAP Java:java.lang.NoClassDefFoundError:com
- capistrano – cap deploy:setup使用root作为所
- linux – 在Ubuntu上安装Gnuplot 5.0
- 为什么内存使用量超过Linux中的物理RAM?
- Linux getopt()函数 getopt_long()函数---转
- linux – 在Docker容器中挂载SMB / CIFS共享