我想通过删除前缀和扩展名来提取文件名。例如,文件=foo_filename.txt
我正在使用这个,但它不起作用。
${file#foo_%.txt}
谢谢
file="foo_filename.txt"
file=${file#foo_}
file=${file%.*}
echo "$file"
你几乎做对了:
file=foo_filename.txt ; echo ${file%.txt}
或者例如在 sed 的一个步骤中:
file=foo_filename.txt ; echo ${file} | sed 's/^foo_(.*)..*/1/'
还有一种方法:
file=foo_filename.txt ; basename -s .txt ${file#foo_}
您不能在 bash 中"嵌套"变量扩展:${var} 参数扩展表达式可以在 bash 中嵌套吗?