この資料は Rust 製のコマンドラインツール o-o について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
o-o は、コマンドラインで指定されたファイルに対して読み書きを行うコマンドを、標準入出力を前提とした動作を有効にするためのCLIツールです。
xarg などのコマンドを呼び出すコマンドとシェルのリダイレクトとの干渉に悩まされることがあります。
例えば、次のコマンドライン。
% ls *.txt | xargs -I {} head -n 3 {} > {}-head.out
これは、それぞれの *.txt
に対して *.head.out
を作成するのではなく、すべての head コマンドの実行結果を含んだ {}-head.out
という1つのファイルが作成されます。
リダイレクト(>
)は xargs の外側で実行されるので、{}
が置換されないことが理由です。
こうした場合に o-o は便利で、次のように記述できます。
% ls *.txt | xargs -I {} o-o - {}-head.out - head -3 {}
o-o [options] <stdin> <stdout> <stderr> [--] <commandline>...
-h
, —-help
ヘルプ情報を表示する