<commit_before>---
layout: post
title: "Rust製ツールを使って定時で帰ろう"
date: 2018-06-19 23:00:00 +0900
comments: true
categories: "Rust"
published: true
use_toc: false
description: "各種linuxコマンドをリッチで処理速度も早いRust製のCLIに置き換ると幸せになれるかもという話。タイトルが煽り気味で恐縮ですが、作業効率はわりかし上がると思うのでおすすめです。" 
---

今回紹介するのは以下の３つのCLIです。

* ripgrep
* fd
* exa

## ripgrep

> https://github.com/BurntSushi/ripgrep

コマンド名は`rg`。`grep`の拡張版。`ag`より若干速い。

* brewで入ります。 `brew install ripgrep`
* `-z` で圧縮ファイルの中身も検索
* `.gitignore` に記載のディレクトリ・ファイルを無視してくれる、すべて含むことも可能
* SJISやEUC-JPなどもサポート、 `-E` で任意のエンコーディング指定が可能
* `-t` でファイルタイプ指定のinclude、 `-T` でファイルタイプ指定のexclude。`-tpy`でPython, `-Tjs`でJSを除外、といった風に。

## fd

> https://github.com/sharkdp/fd

コマンド名は`fd`。`find`の拡張版。

* brewで入ります。 `brew install fd`
* オプション無しでregexパターンを渡します。`cd /etc && fd '^x.*rc$'`
* 末尾にディレクトリ指定が直感的で地味に便利。 `fd '^x.*rc$' /etc`
* `-e` 拡張子指定。よく使います。
* `-d` maxDepthのこと。あんま使わないかも。
* `-i` ignoreパターン
* `-E` excludeパターンマッチを書ける。`-i`よりこっちのほうがよく使う
* `-0` 検索結果を`NULL`でセパレートしてくれる、検索結果をリダイレクトしてxargsへ渡したいときに助かる。
* 総じて、findを使い慣れていればあまり困らないものではあるが、findより直感的に書け、また処理速度がかなり速いので作業効率は上がりやすいです。

## exa

> https://github.com/ogham/exa

コマンド名は`exa`。`ls`の拡張版でツリー表示の機能も内包されている。<commit_msg>fix typo<commit_after>---
layout: post
title: "Rust製ツールを使って定時で帰ろう"
date: 2018-06-19 23:00:00 +0900
comments: true
categories: "Rust"
published: true
use_toc: false
description: "各種linuxコマンドをリッチで処理速度も早いRust製のCLIに置き換ると幸せになれるかもという話。タイトルが煽り気味で恐縮ですが、作業効率はわりかし上がると思うのでおすすめです。" 
---

今回紹介するのは以下の３つのCLIです。

* ripgrep
* fd
* exa

## ripgrep

> <https://github.com/BurntSushi/ripgrep>

コマンド名は`rg`。`grep`の拡張版。`ag`より若干速い。

* brewで入ります。 `brew install ripgrep`
* `-z` で圧縮ファイルの中身も検索
* `.gitignore` に記載のディレクトリ・ファイルを無視してくれる、すべて含むことも可能
* SJISやEUC-JPなどもサポート、 `-E` で任意のエンコーディング指定が可能
* `-t` でファイルタイプ指定のinclude、 `-T` でファイルタイプ指定のexclude。`-tpy`でPython, `-Tjs`でJSを除外、といった風に。

## fd

> <https://github.com/sharkdp/fd>

コマンド名は`fd`。`find`の拡張版。

* brewで入ります。 `brew install fd`
* オプション無しでregexパターンを渡します。`cd /etc && fd '^x.*rc$'`
* 末尾にディレクトリ指定が直感的で地味に便利。 `fd '^x.*rc$' /etc`
* `-e` 拡張子指定。よく使います。
* `-d` maxDepthのこと。あんま使わないかも。
* `-i` ignoreパターン
* `-E` excludeパターンマッチを書ける。`-i`よりこっちのほうがよく使う
* `-0` 検索結果を`NULL`でセパレートしてくれる、検索結果をリダイレクトしてxargsへ渡したいときに助かる。
* 総じて、findを使い慣れていればあまり困らないものではあるが、findより直感的に書け、また処理速度がかなり速いので作業効率は上がりやすいです。

## exa

> <https://github.com/ogham/exa>

コマンド名は`exa`。`ls`の拡張版でツリー表示の機能も内包されている。
{'fraction_non_alphanumeric': 0.16091954022988506, 'fraction_numerical': 0.017028522775649212, 'mean_word_length': 6.781456953642384, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 12, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5561580', 'n_tokens_mistral': 1765, 'n_tokens_neox': 1732, 'n_words': 142}