gpt4 book ai didi

linux - 在bash中提取没有路径和扩展名的文件基名

转载 作者:IT老高 更新时间:2023-10-28 12:16:40 41 4
gpt4 key购买 nike

给定这样的文件名:

/the/path/foo.txt
bar.txt

我希望得到:

foo
bar

为什么这不起作用?

#!/bin/bash

fullfile=$1
fname=$(basename $fullfile)
fbname=${fname%.*}
echo $fbname

正确的做法是什么?

最佳答案

您不必调用外部 basename 命令。相反,您可以使用以下命令:

$ s=/the/path/foo.txt
$ echo "${s##*/}"
foo.txt
$ s=${s##*/}
$ echo "${s%.txt}"
foo
$ echo "${s%.*}"
foo

请注意,此解决方案应适用于所有最近(2004 年后)POSIX 兼容的 shell,(例如 bashdashksh 等)。

来源:Shell Command Language 2.6.2 Parameter Expansion

更多关于 bash 字符串操作的信息:http://tldp.org/LDP/LG/issue18/bash.html

关于linux - 在bash中提取没有路径和扩展名的文件基名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2664740/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com