この資料は Rust 製のコマンドラインツール tuc について紹介するものです。
Rustの環境構築やツールのインストール方法については以下を参照してください
文字だけでなく、ネガティブインデックスを使用したり、選択したフィールドを好きなようにフォーマットしてカットすることができます。また、したい...。あるいは、最初と最後の行を削除するために、行単位で切り出すこともできます。
GitHub - riquito/tuc: When cut doesn't cut it
tuc playground
フィールドをカットしたり、並べ替える
% echo "foo bar baz" | tuc -d ' ' -f 3,2,1
bazbarfoo
そしてデリミターを戻す
% echo "foo bar baz" | tuc -j -d ' ' -f 3,2,1
baz bar foo
デリミターを変更する
% echo "foo bar baz" | tuc -j -r ' ➡ ' -d ' ' -f 3,2,1
baz ➡ bar ➡ foo
間隔を維持
% echo "foo bar baz" | tuc -d ' ' -f 2:
bar baz
冗長なデリミターを削除
% echo "foo bar" | tuc -g -d ' ' -f 1,2
foobar
出力フォーマットを指示
% echo "foo bar baz" | tuc -d ' ' -f '{1}, {2} and lastly {3}'
foo, bar and lastly baz
# 改行コード(\\n)をサポート
% echo "100Kb README.txt 2049-02-01" | tuc -d ' ' -f '{2}\\n├── {1}\\n└── {3}'
README.txt
├── 100Kb
└── 2049-02-01
先頭と最後の行を削除
% printf "a\\nb\\nc\\nd\\ne" | tuc -l 2:-2
b
c
d
行を連結
% printf "a\\nb\\nc\\nd\\ne" | tuc -l 1,2 --no-join
ab
カット後のデリミタ圧縮
% echo "foo bar baz" | tuc -d ' ' -f 2: -p
bar baz
残りのデリミタを他のものに置き換える
% echo "foo bar baz" | tuc -d ' ' -f 2: -p -r ' -> '
bar -> baz