📅  最后修改于: 2023-12-03 14:39:29.454000             🧑  作者: Mango
在Shell脚本中获取文件名是非常常见的。下面介绍几种在Bash中获取文件名的方法,分别是${}, basename, dirname, 和awk。
首先,定义一个sample.txt的文件:
$ touch sample.txt
使用${}可以获取文件名。下面的代码片段展示了如何使用${}来获取文件名:
#!/bin/bash
filename="sample.txt"
extension="${filename##*.}"
filename="${filename%.*}"
echo $filename
echo $extension
输出结果:
sample
txt
使用basename来获取文件名。下面的代码片段展示了如何使用basename:
#!/bin/bash
filepath="~/Desktop/sample.txt"
filename=$(basename "$filepath")
echo $filename
输出结果:
sample.txt
使用dirname来获取文件名。下面的代码片段展示了如何使用dirname:
#!/bin/bash
filepath="~/Desktop/sample.txt"
directory=$(dirname "$filepath")
echo $directory
输出结果:
~/Desktop
使用awk来获取文件名。下面的代码片段展示了如何使用awk:
#!/bin/bash
filepath="~/Desktop/sample.txt"
filename=$(echo "$filepath" | awk -F/ '{print $NF}')
echo $filename
输出结果:
sample.txt
以上就是几种在Bash中获取文件名的方法。不同场景下选择不同的方法可以帮助我们更好地处理文件。