皆さん、こんにちは。この投稿では、Linuxでchooseコマンドを使用する方法を学習します。このチュートリアルはDebian11でテストしましたが、Ubuntu20.04およびその派生物で動作するはずです。
Chooseコマンドは、Rustで作成されたツールであり、cut
の代わりにさらに堅牢で使いやすくすることを目的としています。 およびawk
コマンド。
このコマンドのおかげで、文字列またはファイル全体から単語または単語範囲を選択できるようになります。これにより、スクリプト、特に文字列の処理が必要なサードパーティプログラムに最適です。
Rustで作成されているので、Linuxでも問題なくインストールできます。これに加えて、それは軽量のツールであり、そのインストールは簡単です。
選択コマンドのいくつかの機能は次のとおりです。
- Pythonのリストスライスに類似したTerseフィールド選択構文
- 行末からの負の索引付け
- オプションの開始/終了インデックス
- ゼロインデックス
さあ、行きましょう。
Rustで作成されたツールであるため、cargo
を使用してインストールできます。 。システムにRustがすでにインストールされている場合は、cargo
がすでにインストールされています。 同様に。
それ以外の場合は、Rustとは別のパッケージとしてインストールできます。 DebianとUbuntuについては、ターミナルを開いてインストールする前に、システムを更新できます。
sudo apt update
sudo apt upgrade
これで、cargo
をインストールできます 実行することによって
sudo apt install cargo
cargo
を使用 インストール、選択してインストールできます。これを行うには、実行するだけです
cargo install choose
インストールの最後に、ターミナルで使用できるように、インストールパスをPATHに追加するように求められます。

私の場合、このコマンドを実行しました
export PATH=$PATH:/home/angelo/.cargo/bin
自分のものに変更して、Chooseのバージョンを確認してください。
choose --version
出力:
choose 1.3.3
これにより、問題なく使用できるようになります。
Chooseコマンドを使用すると、テキスト文字列またはファイルから、それらの位置に応じて1つまたは複数の単語を選択できます。これに加えて、範囲でも機能します。
それをよりよく説明するために、このテキストを検討してください。
Hi, welcome to unixcop. Nice to meet you. So, have a nice day
このテキストで、最初の単語と6番目の単語を表示したい場合。
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 5
出力:
Hi, to
Chooseはカウントを0から開始することを忘れないでください。つまり、0
文字列の最初の単語です。
範囲を取得するには、:
を使用します 。たとえば、
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 1:6
出力:
welcome to unixcop. Nice to meet
この場合、2番目の単語から7番目の単語まで印刷しました。
Pythonと同様に、chooseは構文の一部を取り、文字列の最後の単語を定義します。つまり、-1
最後の単語-2
を指します 最後から2番目の単語まで。
例:
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 2:-1
この場合、3番目の単語から最後まで表示しています。結果は次のとおりです。
to unixcop. Nice to meet you. So, have a nice day
別の単語や範囲を選択することもできます
echo 'Hi, welcome to unixcop. Nice to meet you. So, have a nice day' | choose 0 10 4:-3 -1
そこで、最初の単語、11番目、最後から2番目の単語の5番目、最後の単語を選択しました。結果は次のとおりです。
Hi, a Nice to meet you. So, have a day

Chooseコマンドは、.csv
の処理にも役立ちます。 ファイル。この場合、使用法は同じですが、,
で区切られている場合 -f
を追加する必要があります オプション。たとえば、
cat [csv_file] | choose -f ',' 0:2
このようにして、区切り文字が,
であることを選択します。 。
画面出力を読みやすくしたい場合は、-o
を使用できます。 タブキーを使用したオプション。
cat [csv_file] | choose -f ',' -o '0 3
とても簡単です。
この投稿では、chooseのような重要なツールを紹介しました。これは、awk
の確実な代替手段となることを目的としています。 およびcut
コマンドですが、すべてを簡素化します。