特定のディレクトリをクロールし、すべてのx265ファイルを一覧表示するスクリプトを作成しようとしています。 mediainfo を使用してファイルが x264 であるか x265 であることを確認し、sed を使用してテキストをクリーンアップします。私が理解していない部分は次のとおりです。
1. cliでは動作しますが、ここでは動作しないコマンドをどのように定式化しますか?
2. サブディレクトリを含めるにはどうすればよいですか?
#!/bin/bash
for file in ls
search='mediainfo $file | grep -E "Writing library"| sed 's/.*x//'| sed 's/\s.*$//''
if [ $search -eq 265 ]
then
echo $file is a 265
else
echo $file is not 265 and is $search
fi
答え1
for
次の形式を使用できます。
for file in **/*
現在のディレクトリとサブディレクトリのすべてのファイルをインポートします。
戻り値を変数に代入するには、逆引用符を使用してください。
search=`mediainfo $file | grep -E "Writing library"| sed 's/.*x//'| sed 's/\s.*$//'`
次のようなものを使用すると、出力が単純化される可能性があります。
mediainfo --Inform="Video;%Codec%" $file
または
ffprobe $file 2>&1 >/dev/null | grep Stream.*Video