ファイル形式の逆引き

ファイル形式の逆引き

私の画像フォルダには画像だけが必要なので、このコマンドを使用してすべてのビデオファイル "intruder"を見つけます(Stackexchangeのどこかにあります)。

find folder/imageonly  -type f -exec file -N -i -- {} + |sed -n 's!: video/[^:]*$!!p'

しかし、逆検索をしたい場合はどうすればいいですか?たとえば、ビデオフォルダ内のビデオ以外のファイルをすべて探したいですか?

ps = iは拡張子を使用しないため、「file -N -i..」フラグを使用する必要があります。

答え1

私はsedの代わりにgrepを使います(主にsedの経験がないからです)。ただし、以下は機能する必要があります(私のシステムでも機能します)。

find .  -type f -exec file -N -i -- {} + | grep -v 'video/' | cut -d : -f 1

これは予想されません:しかし、ファイル名には。

答え2

次のアドレス範囲を追加してくださいsed

find folder/imageonly  -type f -exec file -N -i -- {} + |
  sed -n '/: video\/[^:]*$/!s!: [[:alnum:]]*/[^:]*$!!p'

/: video\/[^:]*$/!ビデオの一致に使用されたパターンと一致しないすべての行でコマンドを実行するように指示します。

関連情報