如何去除文件名中模式后的所有内容?

How do you strip everything after a pattern in a filename?

编辑: 我只需要去掉 .gz

SUBMIT joust_aallgeier_attempt_2015-11-12-20-37-40_project04.tar.gz

这些已经压缩好了。 我需要 project.tar 输出 我有以下剥离第一部分。

filename=${j##*_}

与bash的Parameter Expansion:

filename="SUBMIT joust_aallgeier_attempt_2015-11-12-20-37-40_project04.tar.gz"
stripped="${filename##*_}"
stripped="${stripped%.gz}"
echo "$stripped"

输出:

project04.tar