2017-11-03 6 views
1

私は怠け者です:)私は私のネットワーク上でいくつかのことを自動化したいと思います。現在、私は毎週見ているシリーズを自動的にダウンロードするスクリプトを実行しています。ダウンロードされたものに基づいて、別のスクリプトがWebで字幕を検索します。一部のダウンロードには字幕があるため、字幕を探す必要はありません。私は字幕のためのあらゆるダウンロードを点検し、ファイルに正しい字幕がある場合通知される(またはよりよいファイルを動かす)ようにしたいと思う。スクリプトの出力で何かをする

私は次のように開始:

find /volume2/Downloads/ -type f -mmin -30 | while IFS= read -r file; do 
    ffmpeg -i "${file}" 
done 

これは動作し、私に30分より新しい各ファイルのffmpegのコマンドの出力を示します。出力に特定の文字があるときにメールで通知されるように、ffmpegで与えられた結果を処理したいと思います。私のLinuxスクリプティングスキルは、しかし、私が得たスクリプトで停止します。私はWeb開発者ですので、このようなスクリプトの背後にあるロジックは理解できますが、特定のコードやコマンドは理解できません。

  • (ENG)::私が探している

    文字字幕:

  • (DUT):字幕:

これを行うことができますか?

編集:

私はいくつかのより多くの研究を行なったし、私のスクリプトを一部変更しました:それはffmpegの出力を示しているが、それはおそらくのステップだ「マッチ」の代わりに

find /volume2/Downloads/ -type f -mmin -60 | while IFS= read -r file; do 
    if ffmpeg -i "${file}" | grep -q '(dut): Subtitle:'; then 
     echo "matched" 
    fi 
done 

を正しい方向?

答えて

1

stderrをstdoutにリダイレクトする必要があります。

find /volume2/Downloads/ -type f -mmin -60 | while IFS= read -r file; do 
    if ffprobe -i "${file}" 2>&1 | grep -q '(dut): Subtitle:'; then 
     echo "matched" 
    fi 
done 

シナリオのためのパイプを使用しての質問はunix stackexchange

+0

おかげで議論されてきました!これは素晴らしい作品です! – vespino

関連する問題