CentOSのコマンドを使用して、ディレクトリとサブディレクトリのファイル形式をどのように理解できますか?
出力は次のようになります。
.inc, .inp, .odb, .a3db, .......
ベストアンサー1
独自のファイル拡張子のリストを取得します(これはいいえUnixでは「ファイル形式」を表します)、次のことができます。
find . -type f -name '*.*' -exec sh -c '
for pathname do
printf "%s\n" "${pathname##*.}"
done' sh {} + | sort -u
名前に1つ以上のドットが含まれている現在のディレクトリ内または下のすべての一般的なファイルを見つけます。これらのパス名の場合、最後のポイントまですべてを削除し、残りの文字列を印刷する短いスクリプトが実行されます。 sort -u
次に、重複したアイテムを削除しながら並べ替えます。
これは、ファイル拡張子に改行文字が含まれていないと仮定します。
これを1行のカンマ区切りリストに配置するには、出力をパイプしますtr '\n' ','
(これを行うと、改行ではなく行末にカンマが生成されます)。
出力にドットを含めるには、printf
フォーマット文字列をからに%s\n
変更します.%s\n
。
Unixには、通常のファイル、ディレクトリ、名前付きパイプ、文字、ブロック特殊ファイルなどのファイル形式があります。ただし、これらのタイプはファイル名で区別されません。