Unixの「file」コマンドには、ファイル名の後にヌル文字を出力する-0オプションがあります。これは、「cut」で使用するのに適していると思われます。
差出人man file
:
-0, --print0
Output a null character ‘\0’ after the end of the filename. Nice
to cut(1) the output. This does not affect the separator which is
still printed.
(私のLinuxでは、「-F」区切り文字は印刷されないことに注意してください。これは私にとってより理にかなっています。)
'cut'を使用して'file'の出力からファイル名を抽出するにはどうすればよいですか?
これが私がやりたいことです:
find . "*" -type f | file -n0iNf - | cut -d<null> -f1
<null>
ヌル文字はどこにありますか。
それが私がやろうとしていることです。私がやりたいのは、特定のMIMEタイプを持つディレクトリツリーからすべてのファイル名を取得することです。grepを使用しています(図には示されていません)。
すべての有効なファイル名を処理し、名前にコロンが含まれるファイル名にとらわれないようにします。したがって、NULは優れています。
カットされていないソリューションでも問題ないと思いますが、単純なアイデアをあきらめるのは嫌です。