tacの実装
前回の記事(【Linux コマンド】文書の表示 - サブロウ)の最後に書いたtacの実装について書きます。
簡単に言うと、MacのLinuxにはtacがデフォルトで入ってなくて、brewでもインストールできないので、自分で作ろうという話です。
tac: 文書を一番下の行から逆順に表示
上記のようなコマンドを作っていきます。
まず下のスクリプトをreverse.pyとして、ホームディレクトリに保存。
中身の説明をすると、
2行目のstdin.readlines()で標準入力を読み込んでいます。(ただし、その時に空白や\nなども一緒に読み込むので、リストに格納する時にstrip()でそれらを取り除いています)
標準入力をリストに格納したら、3, 4行目で、それを逆順にprintさせています。
次に、ホームディレクトリ上の.bashrcを開いて
reverse() { python3 ~/reverse.py }
を追記して、保存します。
これでまず、reverseというコマンドを作りました。
例えば
$ cat file cat dog elephant
というfileに対し、reverseをパイプでつなげると、
$ cat file | reverse elephant dog cat
と、逆順に表示されます !
$ cat file | reverse | reverse cat dog elephant
2回reverseさせると元に戻ります。(当たり前)
なので、また.bashrcを開いて
tac(){ cat "$1" | reverse }
を追記すれば、無事tacコマンドを作成することができました! (ちなみに上の$1というのは1番目の引数を表します。cat fileなら、$1に、fileが入ります)
tac fileを実行して、tacが正常に動いていることを確認してください。
以上、tacコマンドを作ってきましたが、上記の手順を踏めばそれ以外のコマンドを自分で作ることができます。コマンドはpythonスクリプト(その他プログラミング言語)でかけるので、自分でいろんな操作をさせることが可能です。
(まとめ)
Linuxコマンドは自作できる。