Regex 使用sed(bash)在模式之前提取字符串
我需要一些sed的帮助,以便在匹配模式后删除所有内容,并删除最后一个Regex 使用sed(bash)在模式之前提取字符串,regex,bash,sed,Regex,Bash,Sed,我需要一些sed的帮助,以便在匹配模式后删除所有内容,并删除最后一个“(如果存在) 以这个字符串为例: The.100.S02E05.720p.HDTV.x264-KILLERS.mkv 除了最后一个“ 我想要的是: "The.100" 有没有人对此有一个很好的oneliner?听起来你几乎可以完全使用你在问题中的内容: sed 's/\.*S[0-9][0-9]E[0-9][0-9].*//' 这将匹配一个可选的字符,后跟您建议的模式(以及其后的任何内容),并将其替换为nothing。您
“
(如果存在)
以这个字符串为例:
The.100.S02E05.720p.HDTV.x264-KILLERS.mkv
除了最后一个“
我想要的是:
"The.100"
有没有人对此有一个很好的oneliner?听起来你几乎可以完全使用你在问题中的内容:
sed 's/\.*S[0-9][0-9]E[0-9][0-9].*//'
这将匹配一个可选的
字符,后跟您建议的模式(以及其后的任何内容),并将其替换为nothing。您在问题中缺少了一个]
,我已添加了该字符
测试它:
$ sed 's/\.*S[0-9][0-9]E[0-9][0-9].*//' <<<'The.100.S02E05.720p.HDTV.x264-KILLERS.mkv'
The.100
$sed's/\.*s[0-9][0-9]E[0-9][0-9]./'