2017-05-12 4 views
0

私はubuntuで以下のコマンドを使って一つのフォルダ内のファイルを探し、FFmpegをフィードして別のフォルダに出力しようとしています。問題は、出力パスとファイル名を処理するときに、aを追加することです。以下のようなので、パスに:それはそれを行うが、解決策を得るために右の検索用語を見つけることができない理由/conversions./resultFromFind.mkvを削除します。 findの結果から

find -name '*720p*.mp4' -exec ffmpeg -i {} -c:v copy -c:a ac3 /home/plex/library/localFiles/Complete/conversions{} \; 

私は理解しています。どのように私を削除しますか? ?

+1

「/ home/plex/library/localFiles/Complete/conversions/{}」という特別なスラッシュを追加するだけですか? – zerkms

+0

/は、{}が名前の先頭に./を追加するため、私の例の中にはありません。私はちょうどマイナスだけ戻ってくる検索結果が必要です。またはそれだけの名前。 – user2680603

答えて

0

pwdを使用すると、必要なものを手に入れることができます。

find `pwd` -name '720p.mp4' -exec ffmpeg -i {} -c:v copy -c:a ac3 /home/plex/library/localFiles/Complete/conversions{} \; 
+0

このオプションは機能しましたが、必要な結果は得られませんでした。それは/ home/plex/library/localFiles/Complete/conversions/home/plex/library/localFiles/Completeに送信したい出力に{}を送るときに、/ home/user// manual/movies/tmp /ファイル名またはマイナスを必要とします。パスを含まない。 – user2680603

0

あなたは試すことができます:

dest=/home/plex/library/localFiles/Complete/conversions 
find -type f -print0 | while read -d $'\0' file_name; do 
    ffmpeg -i "$file_name" -c:v copy -c:a ac3 "$dest"/"${file_name#.}" 
done 

$ {文字列#サブストリング}
を$文字列の前から$サブストリングの最短マッチを削除します。

Source - >セクション "サブストリングの削除":

$dest${file_name#.}/は必要ありません、私は読みやすさのためにそれを置きます)。

関連する問題