2017-02-10 4 views
-1

シェルスクリプトを作成して、フォルダ内にビデオのサムネイルを作成します。シェルスクリプトが子どもの代わりに兄弟名を返す

拳のステップは、そのフォルダ内の動画の名前を取得することです。

私はディレクトリ名9febを持っています。そのディレクトリに

folder 1 
folder 2 
folder 3 
sample 
tst.sh 

tst.shが

#!/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(*)は、その観点からは安全で、サブシェルの作成を避けます。

あなたは(パスなし)ファイルの名前を抽出する必要がある場合、あなたはこのようにそれを行うことができますので、予めご了承ください。

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

ます。また、使用することができます。

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

一部より読みやすいが、サブシェルがかかる。

+0

であるです。私はそれが動作していない前にもこれを試してみましょうが、今は動作しています –

関連する問題