在Bash中解析文件名,可以使用以下方法:
basename
命令:basename
命令可以从完整的文件路径中提取出文件名。例如:file_path="/path/to/your/file.txt"
file_name=$(basename "$file_path")
echo "$file_name"
${}
扩展:${}
扩展可以从字符串中提取子字符串。例如:file_path="/path/to/your/file.txt"
file_name="${file_path##*/}"
echo "$file_name"
在这个例子中,${file_path##*/}
表示从$file_path
中删除最长的前缀*/
,即删除最后一个斜杠及其前面的所有字符,返回文件名。
cut
命令:cut
命令可以从字符串中提取指定的字段。例如:file_path="/path/to/your/file.txt"
file_name=$(echo "$file_path" | cut -d '/' -f $(echo "$file_path" | tr -cd '/' | wc -c))
echo "$file_name"
在这个例子中,$(echo "$file_path" | tr -cd '/' | wc -c)
表示计算$file_path
中斜杠的数量,即文件名所在的字段位置。然后,cut -d '/' -f
命令提取出文件名字段。
这些方法都可以在Bash中解析文件名,可以根据实际需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云