コマンドラインで使う|
は、パイプ (pipe)と呼ばれます。この記号は、一つのコマンドの出力を、別のコマンドの入力として渡すために使います。
基本的な使い方
以下のように、複数のコマンドを|
でつなぎます:
command1 | command2
command1
: 出力を生成するコマンド。command2
: 入力を受け取り処理を行うコマンド。
具体例
1. テキストのフィルタリング
ls
コマンドの出力から特定の文字列を含む行を抽出する例:
ls | grep "txt"
ls
: 現在のディレクトリの内容を一覧表示。grep "txt"
: 出力の中から「txt」を含む行を表示。
2. 出力の整形
長い出力を見やすくするため、less
でページ分けする:
ps aux | less
ps aux
: 現在動作しているプロセスを詳細表示。less
: 出力をページ単位でスクロール可能に。
3. 結果のカウント
特定の条件に合う行数を数える:
cat file.txt | grep "error" | wc -l
cat file.txt
: ファイルの内容を出力。grep "error"
: 出力の中から「error」を含む行を抽出。wc -l
: 抽出結果の行数をカウント。
4. 複雑な処理
複数のコマンドを組み合わせてデータを処理:
find /path/to/search -type f | xargs wc -l | sort -n
find /path/to/search -type f
: 指定したパス内のすべてのファイルを検索。xargs wc -l
: 各ファイルの行数を計算。sort -n
: 行数順にソート。
メリット
- コマンドの出力を直接次のコマンドに渡せるため、効率的なデータ処理が可能。
- 一時ファイルを作成せずにデータを流れるように処理できる。
注意点
- 各コマンドは標準入力 (stdin) と標準出力 (stdout) に対応している必要があります。
- コマンドの順序を間違えると、意図した結果にならない場合があります。
何か具体的な例やシチュエーションでの質問があれば教えてください!