gpt4 book ai didi

regex - sed 带有以空格开头并包含破折号的正则表达式

转载 作者:行者123 更新时间:2023-12-05 01:03:42 27 4
gpt4 key购买 nike

在 bash 中,我想解析 mp3 文件的文件名,其中轨道号、艺术家和标题之间的分隔符是“-”(空格破折号空格)。预期结果如下:轨道标题(原版 - 长编)

我的sed命令如下:

echo "03 - 艺术家姓名第一中间名 - 轨道标题(原始版本 - 长编辑)"| sed -E 's/^([^ - ]*[ - ]){2}//'

结果:艺术家名-中间名-轨道标题(原始版本-长编辑)

我被困在这里,无法将“- ”作为一个术语。我究竟做错了什么?感谢您的提示!

这里的示例数据:

'01 - Skyway - Chillwave - Synthwave - Retrowave Mix.mp3'
'02 - Baldocaster - Astral Dive.mp3'
'05 - Jacket. and Shadowrunner - Deathtouch.mp3'
'06 - Night Drive - A Synthwave Mix.mp3'
'07 - Shadowrunner and Syst3m-Glitch - Eastbound Plane Mattaei (Original - Long Mix).mp3'

在bash脚本中我要设置title变量如下:

title=`echo ${filename} | sed -E "s/^([^${SEPARATOR}]*[${SEPARATOR}]){4}//"

其中 SEPARATOR 是一个变量,也包含例如“——”

最佳答案

使用参数扩展的解决方案。

$ filename="03 - Artist name first-middle name - Title of the Track (Original Version - Long Edit)"
$ filename="${filename#* - * - }"
$ echo "$filename"
Title of the Track (Original Version - Long Edit)

关于regex - sed 带有以空格开头并包含破折号的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73816830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com