我需要作为 bash 脚本的参数给出的文件的基本名称。基本名称应去掉其文件扩展名。让我们假设$1 = "/somefolder/andanotherfolder/myfile.txt",期望的输出是"myfile"。
当前的尝试创建了一个我想避免的中间变量:
BASE=$(basename "$1")
NOEXT="${BASE%.*}"
Run Code Online (Sandbox Code Playgroud)
我尝试将其作为单行代码,通过管道输出 basename 的输出。但是,我不知道如何将标准输出传输到字符串替换。
编辑:这需要适用于可能具有不同长度的多个文件扩展名,因此字符串替换尝试如上所述。