LoginSignup
45
48

More than 5 years have passed since last update.

moreutils について

Last updated at Posted at 2015-10-16

moreutils とは

Unix 初期の時代には誰も書こうとは考えなかった、日々拡大を続ける Unix ツール集

この投稿の趣旨

moreutils は便利なのにあまり知られていないので、知名度を上げるためにまとめました。
moreutils が提供するコマンドは数多くありますが、その中で特に私自身が便利だと思うものを使い方とともに紹介します。

chronic

下記を

$ backup >/dev/null 2>&1

下記のように

$ chronic backup

と書くことができる。
>/dev/null 2>&1 の順番を覚えるのが大変なので、便利。

combine

2つのファイル中の行を論理演算して出力できる。
(例)

$ cat lang.txt
Ruby
Perl
Python
PHP

$ cat gemstones.txt
Ruby
Peridot
Sapphire
Opal
Topaz

$ combine lang.txt and gemstones.txt
Ruby

$ combine lang.txt not gemstones.txt
Perl
Python
PHP

$ combine gemstones.txt not lang.txt
Peridot
Sapphire
Opal
Topaz

ifdata

ifconfig や ip a を文字列処理しなくても、ネットワークのいろんなデータを取得可能

$ ifdata -pa lo
127.0.0.1

ifne

標準入力が空でないとき、後続の処理を実行する。

man ページに掲載されていた例(core があれば root にメールする)

find . -name core | ifne mail -s "Core files found" root

isutf8

引数のファイルが UTF8 かどうかを判定する。

$ isutf8 README.md && echo UTF-8
UTF-8

Sponge

標準入力をすべて受け取ってから、引数のファイルに書き出す。

(例)

$ cat lang.txt
Ruby
Perl
Python
PHP

$ egrep ^P lang.txt > lang.txt
grep: 入力ファイル `lang.txt' が出力にもなっています

$ egrep ^P lang.txt | sponge lang.txt
$ cat lang.txt
Perl
Python
PHP

vidir

テキストエディタを使って、カレントディレクトリを編集できる。
ファイル名を一括置換するときや、一部のファイルを削除したいときなどに便利。

$ vidir

$ find -type f | vidir

vipe

パイプの途中にテキストエディタを利用できる。

例として、DB のダンプ内容を加工して、リストアするときは下記のようにしたりできる。

$ mysqldump --host=srchost -uroot -p srcdb | vipe | mysql --host=dsthost -uroot -p dstdb

参考文献

45
48
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
48