ファイルのリストがあり、必要です。すべての画像ファイルを探すこのリストから。
たとえば、私のリストに次のものが含まれているとします。
pidgin.tar.gz
photo01.jpg
picture01
screenshot.gif
invoice.pdf
それから、次を選択したいと思います。
photo01.jpg
picture01
screenshot.gif
メモ:
- メソッドはファイル拡張子に依存してはいけません。
- PhotoshopとGimpのぼやけた画像形式は無視できます。 (
feh
表示できない場合は画像ではありません。)
ベストアンサー1
次のコマンドは、list_file
イメージファイル名を含む行を一覧表示します。
<list_file xargs -d \\n file -i | sed -n 's!: *image/[^ :]*$!!p'
file -i FOO
フォーマットを決定するために、最初の数バイトを報告して1行をFOO
印刷しますFOO: image/jpeg
(-i
MIMEタイプを表示します。これはLinuxのGNUファイルにのみ適用されます)。xargs -d \\n
標準入力からファイルのリスト(1行に1つ)を読み、後続のコマンドを適用します。 (これにはLinuxでGNU xargsが必要です。他のシステムでは省略されますが、-d \\n
ファイルリストに\'"
スペースを含めることはできません。)- この
sed
コマンドはサフィックスをフィルタリングし、: image/FOO
ファイル名のみを表示します。イメージファイルに対応しない行は無視されます。