当字符串包含括号时 Bash 字符串操作

当字符串包含括号时 Bash 字符串操作

我有一个充满名称为 template 的文件的目录

xxx[0-9][0-9][0-9[0-9]ss(wrx-mmm).zip

zip 文件包含一个文件yrq000.dat,我不想在文件解压缩时覆盖它们。

我正在创建一个处理脚本,但我想将该通用文件命名为与其源 zip 关联的名称,并且我正在检查该方法:

for f in $(ls xxx*)
do
  uniquename="${f%%(wrx.*zip}"
done

我不知道如何从字符串中去掉左括号。

我这样做的 bash 字符串操作可能吗?也就是说,它不起作用。我需要添加或删除什么才能使其正常工作?

答案1

尝试从图案中删除点,即:

for f in xxx*;
do
    uniquename="${f%%(wrx*zip}";
    echo "${uniquename}";
done

它获取名称为 形式的文件xxx[0-9][0-9][0-9[0-9]ss(wrx-mmm).zip并将它们转换为 形式的字符串xxx[0-9][0-9][0-9[0-9]ss。这就是你想要实现的目标吗?

相关内容