目录的名称是已知的,并且已知此目录中的所有文件具有相同的扩展名。我只需要提取一个扩展名并将其分配给变量。
我有一个脚本,它根据目录的内容采用不同的例程。例如,如果文件夹包含jpg
个文件,则脚本会对tiff
个文件执行不同的操作。我的脚本不需要知道文件的名称或数字,只需知道它们的扩展名。所以我需要提取任何一个文件的扩展名(所有文件具有相同的扩展名),并将其分配给变量。
我试过这样的事情:
variable=$(basename "/path/dir/*")
extension="${variable##*.}"
其中"*"
通配符列出了所有文件。我只需要一个扩展名。
答案 0 :(得分:0)
您可以使用awk
查找扩展程序。
for file in directory/*.*; do
var=$(echo $file | awk 'BEGIN{FS="."} {print $NF}')
break
done
在这个例子中,FS告诉awk使用句号“。”分隔字段,$ NF指定最后一个字段。
答案 1 :(得分:0)
extension=$(ls directory_path/ | awk -F. 'NR==1{print $NF}')
答案 2 :(得分:0)
file=$(find directory -maxdepth 1 -mindepth 1 -type f -print -quit)
ext="${file##*.}"
find
命令查找directory
中的第一个文件,打印路径并退出。结果(路径)将写入file
变量。
下一行从路径前面删除*.
的最长匹配,并将结果分配给ext
变量。
根据需要调整-maxdepth
和-mindepth
选项。