![从路径字符串中提取文件名](https://linux22.com/image/156936/%E4%BB%8E%E8%B7%AF%E5%BE%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E6%8F%90%E5%8F%96%E6%96%87%E4%BB%B6%E5%90%8D.png)
我有一个像这样的字符串
/path/to/some/file.txt
我只想提取文件名,不带扩展名:
file
问题是该路径是随机选择的,我无法将其硬编码为变量作为路径,它必须是字符串。我不希望文件名包含任何非字母数字字符。最简单的方法是什么?
答案1
回答:
使用基本名称查看堆栈溢出的答案
https://stackoverflow.com/a/10124347/879882
basename /path/to/some/file.txt
将仅返回文件名。更多内容可阅读man basename
如果您只想获取文件名而不包含后缀,则只需填写 an 即可basename -s .txt /path/to/some/file.txt
,它也会删除后缀。
另外一个选择:
您可以使用awk 'BEGIN{FS="/"} {print $NF}
and 来实现这个能够删除后缀的选项,只需| awk 'BEGIN{FS="."} {print $1}'