首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Unix bash 'one-liner‘隔离包含".mp3“的所有括号。

Unix bash 'one-liner‘隔离包含".mp3“的所有括号。
EN

Stack Overflow用户
提问于 2010-12-09 19:39:24
回答 4查看 489关注 0票数 2

我对这个Unix的东西完全陌生--这里的第一个问题!希望你们能帮上忙

问题:

我有大量杂乱无章的web源代码(包装/未格式化),其中包含多个事件:

('http://www.example.com/path/audio.mp3')

你能帮我弄一条单线船吗?这将隔离这些括号,其中包含一个包含".mp3"、清除前导/尾随"()“和”'“字符的URL,然后将其打印为列表(每行一条)到活动的.txt文件。

注意:一行将作为服务/工作流在Mac上的Automator中使用,以便对“所选文本”进行操作。

任何帮助都将是非常感谢的,因为(尽管拖网通过所有的在线呼噜),我完全迷路了。

诚挚的问候,

戴夫

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-09 19:55:46

使用egrep-o (只输出匹配的部分)应该可以做到这一点。试着做这样的事情:

代码语言:javascript
复制
egrep -o "http://[^'\"]+.mp3" FILENAME
票数 4
EN

Stack Overflow用户

发布于 2010-12-09 19:48:20

PERL,这是Mac应该有的。

代码语言:javascript
复制
#!/usr/bin/perl
while(<STDIN>)
{
    $_ =~ /.*(http:\/\/.*\.mp3).*/;
    print $1 . '\n';
}
票数 0
EN

Stack Overflow用户

发布于 2010-12-09 19:49:25

试着完善以下几点:

代码语言:javascript
复制
perl -ne $'while(/\(\'(http:\/\/[\w.\/]+?\.mp3)\'\)/g) { print "$1\n"; }' < input_file > output_file

它一次读取stdin (此处:input_file)一行,查找该行中的每一个"url“,并将其打印到没有('')的stdout (此处:output_file)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4402342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档