您好我有2个bash脚本,我正试图一起工作。第一个脚本给出了一个文件名以及该文件所在的目录,如下所示:
example_file
/var/www/some_directory
第二个脚本用于根据文件类型对相关文件进行处理,即。如果example_file.txt脚本做了一件事,如果它是example_file.mkv则完全不同。 我正在寻找一种方法让第二个脚本自动确定文件扩展名类型,仅基于其所在的文件名和目录的名称(即查看/ var / www / some_directory中的example_file并正确确定文件的扩展名)所以给定
example_file
脚本返回
之一 example_file.txt OR example_file.mkv OR example_file. mp3 etc etc
请注意,该目录只包含一些文件和一个且只有一个名为example_file的文件。*
答案 0 :(得分:1)
basename $(ls /var/www/some_directory/example_file.*)
答案 1 :(得分:0)
不确定我理解正确: - 你有一个没有扩展名的文件 - 您希望脚本输出其名称,添加适当的扩展名吗?
如果是这样的话:man file
(在一个unix系统上,file
使用所谓的“魔法”确定文件的内容,这是文件的前几个字节,并输出不同的描述什么魔术字节告诉它)
答案 2 :(得分:0)
从列表中获取文件名,然后使用switch语句对其执行操作:
#! /bin/bash
dir="/var/www/some_directory"
file_prefix="example_file"
filename=$(ls -1 "$dir" | grep "^$file_prefix")
case "$filename" in
*.txt)
# do txt stuff
;;
*.mp3)
# do mp3 stuff
;;
*)
echo unrecognized
;;
esac