小编fab*_*bsh的帖子

使用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\}\)\(.*\)/\1\3\5/'
Run Code Online (Sandbox Code Playgroud)

这为我提供了每行的一些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
Run Code Online (Sandbox Code Playgroud)

注意最后的长URL.我想缩短它以更好地适应命令行.因此,我想更改我的sed命令以生成以下内容:

Sat 20:33 GMT> WhatsApp-Ausfall: Server-Probleme blockieren Messaging-Dienst http://www.heise.de/-2121664
Run Code Online (Sandbox Code Playgroud)

这意味着除了破折号和".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
Run Code Online (Sandbox Code Playgroud)

编辑2:

看来我只能把输出输出到一个命令中.通过多个管道进行管道似乎打破了局面.我不明白为什么ATM.

regex url sed

5
推荐指数
1
解决办法
256
查看次数

转换为YYYY-MM-DDTHH:MM:SS +/- HH:MM日期为bash

可能重复:
在bash中转换日期格式

我需要转换日期,如

2012-06-01T19:05:00+02:00
Run Code Online (Sandbox Code Playgroud)

这样的事情

01-06-2012 19:05
Run Code Online (Sandbox Code Playgroud)

理想情况下使用sedawk.我该怎么做呢?

bash awk date sed

1
推荐指数
1
解决办法
1386
查看次数

标签 统计

sed ×2

awk ×1

bash ×1

date ×1

regex ×1

url ×1