我有一个文件夹中的许多文件:提取文件名的某些部分猛砸
yyyymmdd_hhmmss.mp4
yyyymmdd_hhmmss_suffix1.mp4
yyyymmdd_hhmmss_suffix1_suffix2.mp4
以下文件名格式也是可能的(很少):
yyyymmdd_hhmmss_$$$.mp4
yyyymmdd_hhmmss_$$$_suffix1.mp4
yyyymmdd_hhmmss_$$$_suffix1_suffix2.mp4
yyyymmdd_hhmmss_$$.mp4
yyyymmdd_hhmmss_$$_suffix1.mp4
yyyymmdd_hhmmss_$$_suffix1_suffix2.mp4
yyyymmdd_hhmmss_$.mp4
yyyymmdd_hhmmss_$_suffix1.mp4
yyyymmdd_hhmmss_$_suffix1_suffix2.mp4
其中$是一个数字0〜 9
我试图抓住“YYYYMMDD_HHMMSS”,并用它作为参数。 这是我做什么,当只有一个后缀提出:
for file in "[email protected]"; do
file_nosuffix="${file%*_suffix1.mp4}.mp4"
echo "$file and $file_nosuffix"
done
但是,当上面提到的文件名格式的种种都我迷路。 理想情况下,我想坚持目前的模式:
这可能吗?
你为什么不只是保存前15个字符到一个变量? – Kathara
另外,默认情况下,'for file'遍历'“$ @”'。 –
此外,顺便提一下,提供的测试数据实际上与您所陈述的格式相符,而不是用于人类的描述性内容,但不能用于实际测试。 'yyyymmdd_hhmmss'与预期所有这些字符都是数字的东西不匹配,例如,*可能是*您的实际格式。 –