🔥

Linuxで複数のコマンドをワンライナーで実行する。

2021/01/03に公開

はじめに

くーばねてすをやっつけるためにLinuxさんと仲良くさせていただいているが、パイプラインさんに協力して頂いて複数のコマンドを連携して出力できることが判明した。

概要

■パイプラインさんってなにできる?
■パイプラインさんの使い方
■パイプラインさん 例
をまとめた^^

パイプラインさんってなにできる?

パイプラインとは、コマンドの標準出力を別のコマンドの標準出力に繋ぐ機能を持ちコマンドを連携することができる。
パイプラインを使うと複数のコマンドをワンライナーで出力することができる。

パイプラインさんの使い方

↓パイプラインさんの書式

$ コマンド1 | コマンド2 | コマンド3...

パイプラインさんはこのようにいくらでもコマンドを繋ぐことができる。
コマンドで1の結果をコマンド2に出力してコマンド2を実行、
コマンド2ででた結果をコマンド3に出力してコマンド3を実行・・・という感じ。
例えばコマンドの結果をlessコマンドで見たい時、パイプラインさんがいないと...

$ ls -l > list.txt
$ less list.txt
dr-xr-x---  4 root root   320 Jan  2 18:13 .
dr-xr-xr-x 18 root root   257 Nov 20 03:25 ..
-rw-r--r--  1 root root    13 Jan  2 17:46 ]
-rw-r--r--  1 root root     0 Jan  2 13:20 .bash
-rw-------  1 root root  9647 Jan  2 19:12 .bash_history
略

一度ファイルに結果を保存してからlessしないといけない。
こんなときパイプラインマンさんがいると・・・

$ ls -l | less
dr-xr-x---  4 root root   320 Jan  2 18:13 .
dr-xr-xr-x 18 root root   257 Nov 20 03:25 ..
-rw-r--r--  1 root root    13 Jan  2 17:46 ]
-rw-r--r--  1 root root     0 Jan  2 13:20 .bash
-rw-------  1 root root  9647 Jan  2 19:12 .bash_history
略

だけ!!!('_')簡単にワンライナー出力できる!
パイプラインコマンドではつぎのコマンドに出力する内容は、表準出力だけになる。
標準エラー出力も一緒に出力したい場合は、

$ ls -l 2>&1 | less

のようにコマンドの末尾に2>&1を付ける。

パイプラインさん 例

$ ls -l | wc -l
5
#↑ ls コマンドの実行結果を wc コマンドに引き渡して行数をカウント。

とか!(1個しかないけど!)

まとめ

Windowsの場合はパイプラインさんは、Shift + Fn + 「ろ」のキーを同時押し!
Windowsの場合はパイプラインさんは、Shift + Fn + 「ろ」のキーを同時押し!
Windowsの場合はパイプラインさんは、Shift + Fn + 「ろ」のキーを同時押し!
パイプライン探すのに最初2時間ほどかかったことは誰にも言わないでほしい('_')

Discussion