21.27.2. sortBy を使用したソート
Camel はプラグ可能なソートストラテジーをサポートします。このストラテジーでは、File 言語を使用してソートを設定します。sortBy オプションは以下のように設定されます。
sortBy=group 1;group 2;group 3;...
各グループはセミコロンで区切ります。簡単な状況では、1 つのグループのみを使用するので、簡単な例を以下に示します。
sortBy=file:name
ファイル名でソートされ、グループの前に reverse: を付けることで順序を元に戻すことができるため、ソートは Z..A になります。
sortBy=reverse:file:name
File 言語の完全なパワーがあるので、他のいくつかのパラメーターを使用できるので、ファイルサイズでソートしたい場合は以下を行います。
sortBy=file:length
文字列比較には ignoreCase: を使用してケースを無視するように設定できます。したがって、ファイル名のソートを使用し、ケースを無視する場合は、以下を行います。
sortBy=ignoreCase:file:name
ignore case と reverse を組み合わせることができますが、最初に逆を指定する必要があります。
sortBy=reverse:ignoreCase:file:name
以下の例では、最後に変更されたファイルで、以下を行います。
sortBy=file:modified
次に、2 番目のオプションとして名前でグループ化するため、同じ変更を持つファイルを名前でソートします。
sortBy=file:modified;file:name
ここで問題が存在しますが、これを見つけることができますか ?ファイルの変更されたタイムスタンプはミリ秒単位であるため問題になりすぎますが、日付のみで、その後にサブグループを名前でソートしたい場合はどうすればよいですか ?
また、File 言語の実際の権限は、パターンをサポートする date コマンドを使用できます。そのため、以下のように解決できます。
sortBy=date:file:yyyyMMdd;file:name
Yeah は非常に強力で、グループごとに reverse を使用することもできます。そのため、ファイル名を元に戻すことができます。
sortBy=date:file:yyyyMMdd;reverse:file:name