2017-02-10 64 views
-1

我正在創建一個shell腳本來創建一個文件夾內的視頻縮略圖。Shell腳本返回兄弟姐妹的名字代替兒童

第一步是獲取該文件夾中的視頻名稱。

我有一個目錄名稱9feb。在該目錄中,我有一個文件夾

folder 1 
folder 2 
folder 3 
sample 
tst.sh 

tst.sh是shell腳本

#!/bin/bash 

SRC= /home/user4/media/videos/9feb/sample 

for FILE in `ls $SRC` 
do 

echo $FILE 

done 

我想在樣本文件夾中的文件的名稱,但腳本返回在腳本文件夾和文件名位於。

輸出:大概

#!/bin/bash 
SRC=/home/user4/media/videos/9feb/sample 
for FILE in "$SRC"/* 
do 
    echo $FILE 
done 

您的問題:

folder 1 
folder 2 
folder 3 
sample 
tst.sh 

所需的輸出

a.mp4 
b.mp4 

a.mp4和b.mp4在樣本文件夾

+0

請指定所需的輸出和實際(不需要的)輸出。 – Fred

+0

實際(不想要的)輸出高於 和期望的輸出是 a.mp4 b.mp4 a.mp4和b.mp4是在樣品夾 –

回答

1

試試這個是之間的空間和路徑。

不建議分析ls的輸出,如果文件名具有特殊字符或空格,則使用像你這樣的命令替換將會中斷。 Globbing(*)從這個角度來看是安全的,並避免創建子shell。

請注意,如果你需要解壓的文件名(不帶路徑),你可以這樣說:

FILE="${FILE%/}" # Remove trailing slash, if any 
NAME="${FILE##*/}" # Remove all up to and including last slash 

您還可以使用:

NAME="$(basename "$FILE")" 

一些會發現它更具可讀性,但它會花費一個子shell。

+0

謝謝。我也嘗試之前,它不工作,但現在它正在工作 –