我有一个变量,其中包含目录路径以及文件名.我想从Unix目录路径中单独提取文件名并将其存储在变量中.
fspec="/exp/home1/abc.txt"
Run Code Online (Sandbox Code Playgroud)
cod*_*ict 72
使用basename命令从路径中提取文件名:
[/tmp]$ export fspec=/exp/home1/abc.txt
[/tmp]$ fname=`basename $fspec`
[/tmp]$ echo $fname
abc.txt
Run Code Online (Sandbox Code Playgroud)
gho*_*g74 22
bash获取文件名
fspec="/exp/home1/abc.txt"
filename="${fspec##*/}" # get filename
dirname="${fspec%/*}" # get directory/path name
Run Code Online (Sandbox Code Playgroud)
其他方法
AWK
$ echo $fspec | awk -F"/" '{print $NF}'
abc.txt
Run Code Online (Sandbox Code Playgroud)
SED
$ echo $fspec | sed 's/.*\///'
abc.txt
Run Code Online (Sandbox Code Playgroud)
使用IFS
$ IFS="/"
$ set -- $fspec
$ eval echo \${${#@}}
abc.txt
Run Code Online (Sandbox Code Playgroud)
您可以简单地执行以下操作:
base=$(basename "$fspec")
Run Code Online (Sandbox Code Playgroud)