2013-03-20 118 views
2

嗨,我有一個2 bash腳本,我試圖去一起工作。第一個腳本被賦予一個文件的名稱與該文件位於中像這樣的目錄一起:找到文件擴展名給出的根名稱fie

example_file 
/var/www/some_directory 

第二個腳本是用來做基於文件類型,即有問題的文件處理。如果exam​​ple_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。*

回答

1
basename $(ls /var/www/some_directory/example_file.*) 
+0

這樣做的工作,我會盡快計算器alows我感謝你 – brendosthoughts 2013-03-20 19:38:30

0

不知道我理解正確的: - 你有沒有擴展 一個文件 - 你希望你的腳本輸出它的名字添加適當延長?

如果是這樣:man file(在UNIX系統上,file決定使用什麼所謂的「神奇」的文件的內容,至極是文件的前幾個字節,並根據什麼神奇的字節告訴它輸出不同的描述)

+0

感謝奧利弗問題接受答案雖然我沒有通過身份驗證(th是由第三方完成)我只是希望轉換某些類型的文件,我非常感謝幫助 – brendosthoughts 2013-03-20 19:47:32

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