加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用grep进行正则表达式格式化

发布时间:2020-12-14 05:37:15 所属栏目:百科 来源:网络整理
导读:我正在为我的应用程序解析mp3文件的IDv3标签,我正在使用id3v2.例如,要获取mp3文件的专辑名称,命令是 id3v2 -R sample.mp3 | grep "TALB" 哪个输出 TALB: Album Name 但是,我想只得到TALB的值,而不是整行,所以我将它传递给sed,如下所示 id3v2 -R sample.mp3 |
我正在为我的应用程序解析mp3文件的IDv3标签,我正在使用id3v2.例如,要获取mp3文件的专辑名称,命令是

id3v2 -R sample.mp3 | grep "TALB"

哪个输出

TALB: Album Name

但是,我想只得到TALB的值,而不是整行,所以我将它传递给sed,如下所示

id3v2 -R sample.mp3 | grep "TALB" | sed 's/TALB: //'

哪个输出

Album Name

所以,这是我的问题:

>只有grep可以实现上述结果.如果是这样,我该怎么办?
>即使我得到了我想要的结果,但是当我在寻找像TCON这样的其他标签时,它会返回example.com(255),其中我只需要example.com.那么,我如何在这种类型的grep中编写正则表达式?

解决方法

您可以将Perl样式的正则表达式与-P标志一起使用:

grep -Po '(?<=TALB: ).*'

例如:

$echo "TALB: Album Name" | grep -Po '(?<=TALB: ).*'
Album Name

(?< = TALB :)是一个zero-width look-behind assertion.*是你要匹配的其他东西的模式 – 在第一种情况下,一切.如果您只想匹配标记字符串后面的特定字符串,就像在第二个问题中那样,那么您可以更改它以适合您的特定数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读