从文件中删除命令行管理程序中的前缀和扩展名



我想通过删除前缀和扩展名来提取文件名。例如,文件=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 中嵌套吗?

相关内容

  • 没有找到相关文章

最新更新