この資料は Rust 製のコマンドラインツール huniq について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
コマンドラインで与えられた入力から重複をフィルタリングするためのツールです。sort | uniq
を高速に処理させるために最適化されています。(10倍高速)
GitHub - koraa/huniq at 1e4d1f23bbb88c34f7c128f7eb4a500e97eabf4b
% echo -e "foo\\nbar\\nfoo\\nbaz" | huniq
foo
bar
baz
% echo -e "foo\\nbar\\nfoo\\nbaz" | huniq -c
1 baz
2 foo
1 bar
huniq のヘルプメッセージ
% huniq --help
huniq 2.7.0
Karolin Varner <[email protected])
Remove duplicates from stdin, using a hash table
USAGE:
huniq [OPTIONS]
OPTIONS:
-0, --null Use the \\0 character as the record delimiter.
-c, --count Output the amount of times a line was encountered
-d, --delim <delimiter> Which delimiter between elements to use. By default `
` is used [default: "\\n"]
-h, --help Print help information
-s, --sort Sort output by the number of occurences, in ascending order
-S, --sort-descending Order output by the number of occurences, in descending order
-t, --no-trailing-delimiter Prevent adding a delimiter to the last record if missing
-V, --version Print version information
Copyright © (C) 2020, Karolin Varner. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the Karolin Varner nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Softwear, BV BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ライセンスの抄訳
Copyright © (C) 2020, Karolin Varner. すべての著作権を保有します。
ソースコードおよびバイナリ形式での再配布および使用は、変更の有無にかかわらず、以下の条件を満たす場合に限り許可されます。
ソースコードの再配布は、上記の著作権表示、この条件一覧、および以下の免責事項を保持する必要があります。
また、このような場合にも、本ソフトウェアを使用することができます。
このソフトウェアは、書面による事前の特別な許可なしに、Karolin Varnerの名前およびその貢献者の名前を、このソフトウェアから派生した製品の推奨または販売促進のために使用することはできません。
本ソフトウェアは、著作権所有者および貢献者によって「現状のまま」提供され、商品性および特定目的への適合性の黙示保証を含むがこれに限定されない、いかなる明示または黙示の保証も放棄されるものとします。いかなる場合においても、ソフトウエアBVは、いかなる直接的、間接的、偶発的、特殊、典型的、または派生的な損害(代替品またはサービスの調達、使用、データ、または利益の損失を含むが、これに限定されるものではありません)に対しても、それがどのように引き起こされたとしても、責任を負うものではありません。本ソフトウェアの使用に起因する、契約、厳格責任、または不法行為(過失その他を含む)のいずれに起因し、いかなる責任理論に基づくものであっても、たとえそのような損害の可能性について知らされていたとしても、本ソフトウェアを使用することにより生じるいかなる損害についても、これを補償するものではありません。