📅  最后修改于: 2023-12-03 15:17:22.602000             🧑  作者: Mango
在Linux系统中,文件名通常包含有一个扩展名,代表该文件的类型。文件名和扩展名之间使用.
作为分隔符,例如.txt
表示文本文件,.jpg
表示JPEG图片文件等等。
在一些情况下,需要使用Shell-Bash脚本来获取文件名的扩展名,例如需要批量修改文件类型的时候。下面是一种获取文件扩展名的方法:
#!/bin/bash
filename=$1
extension=${filename##*.}
echo $extension
上面的代码中,首先获取用户传入的文件名,然后使用Shell-Bash中的字符串截取功能来获取文件扩展名。具体来说,${filename##*.}
表示从文件名的最后一个.
字符开始截取,即获取扩展名。
#!/bin/bash
表示使用Bash作为解释器。$1
表示获取用户传入的第一个参数,即文件名。${filename##*.}
表示使用字符串截取来获取文件扩展名。echo $extension
表示输出文件扩展名。假设某目录下包含以下几个文件:
file1.txt
file2.doc
file3.jpg
使用Shell-Bash脚本来获取这些文件的扩展名:
#!/bin/bash
shopt -s nullglob
for file in *
do
if [ -f "$file" ]
then
filename=$(basename -- "$file")
extension=${filename##*.}
echo "$file has the extension $extension"
fi
done
执行上面的脚本,可以得到以下输出:
file1.txt has the extension txt
file2.doc has the extension doc
file3.jpg has the extension jpg
本文介绍了一种获取文件扩展名的Shell-Bash脚本,通过该脚本可以方便地获取文件的类型信息。对于批量修改文件类型或对文件进行分类处理等操作,该脚本具有很大的实用性。