6章uniqコマンド
すべてはただ1つだけ存在する
—— They Might Be Giants, "One Everything" (2008)
本章では、uniq
コマンドのクローンを作成します。uniq
は、ファイルや標準入力の重複している行を取り除くために使われます。さまざまな使い道がありますが、一意な文字列の出現回数を数えるためによく使われています。
本章では、次の内容を学びます。
- ファイルや標準出力に書き込む方法
- クロージャを用いて変数をキャプチャする方法
- DRY(don't repeat yourself)の適用方法
Write
トレイト、write!
、writeln!
マクロの使い方- 一時ファイルの使い方
- 変数の生存期間の指定方法
6.1 uniqの動作
まずは、uniq
の動作について説明します。以下は、BSD版のuniq
のマニュアルページの一部です。本章では、ファイルや標準入力からの読み込み、ファイルや標準出力への書き込み、-c
フラグによる行数カウントのみを実装しますが、プログラムの全容がわかるように、それ以外の部分も示しています。
UNIQ(1) BSD General Commands Manual UNIQ(1) NAME uniq -- report or filter out repeated lines in a file SYNOPSIS uniq [-c | -d | -u] [-i] [-f num] [-s chars] [input_file [output_file]] DESCRIPTION The uniq utility reads the specified input_file comparing adjacent lines, ...
Get Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.