カテゴリ: Linux 更新日: 2026/01/31

Linuxのパイプ・リダイレクト・正規表現を完全攻略!コマンドを繋いで作業を効率化する方法

Linuxでパイプを使うと何ができるのか?
Linuxでパイプを使うと何ができるのか?

先生と生徒の会話形式で理解しよう

生徒

「Linuxのコマンドをいくつか覚えたんですけど、一つ一つ実行するのが少し面倒に感じてきました。もっとまとめて楽に操作する方法はありませんか?」

先生

「素晴らしい気づきですね!そんな時は『パイプ』や『リダイレクト』という機能を使うと、複数のコマンドを連携させたり、結果をファイルに保存したりできるようになりますよ。」

生徒

「パイプ?リダイレクト?なんだか難しそうな名前ですね…。初心者でも使いこなせるでしょうか?」

先生

「仕組みはとてもシンプルです。水道のホースを繋ぐようなイメージだと思えば大丈夫。正規表現という便利な検索テクニックも合わせて、ゆっくり解説していきますね。」

1. Linuxの「パイプ」とは?コマンド同士を繋ぐ魔法の棒

1. Linuxの「パイプ」とは?コマンド同士を繋ぐ魔法の棒
1. Linuxの「パイプ」とは?コマンド同士を繋ぐ魔法の棒

Linuxを操作していると、「あるコマンドで出した結果を、そのまま別のコマンドで加工したい」という場面がよく出てきます。そんな時に使うのがパイプ(pipe)です。記号では | (垂直の棒)を使います。

パソコンの初心者の方にわかりやすく例えると、パイプは「バケツリレー」「工場のベルトコンベア」のようなものです。最初の人が作業した結果を、そのまま次の人に手渡して、さらに加工してもらう仕組みです。

例えば、「ファイルの一覧を表示して、その中から特定の名前が含まれるものだけを抜き出す」といった連続した操作が、パイプを使うことで一行の命令で済んでしまいます。これを使いこなせると、黒い画面(ターミナル)での作業効率が劇的に上がります。

2. パイプの基本的な使い方を見てみよう

2. パイプの基本的な使い方を見てみよう
2. パイプの基本的な使い方を見てみよう

パイプの書き方は非常にシンプルです。2つのコマンドの間に | を入れるだけです。左側のコマンドの出力(結果)が、右側のコマンドの入力(材料)として引き継がれます。

実際に、ファイル一覧を表示する ls コマンドと、特定の文字を探す grep コマンドを組み合わせてみましょう。以下の例では、たくさんのファイルの中から「txt」という文字が含まれるものだけを表示しています。


ls | grep "txt"
memo.txt
sample.txt
test_data.txt

もしパイプを使わなければ、「一度ファイル一覧を全部見て、自分の目でtxtファイルを探す」という手間がかかりますが、パイプを使えばコンピュータが自動で仕分けをしてくれるのです。

3. リダイレクトの基本!結果をファイルに保存する

3. リダイレクトの基本!結果をファイルに保存する
3. リダイレクトの基本!結果をファイルに保存する

通常、コマンドを実行するとその結果は画面に表示されます。しかし、その結果を画面に出すのではなく、「ファイルに書き込みたい」という時に使うのがリダイレクト(redirection)です。

リダイレクトには主に >>> の2種類があります。これらは「出力の向きを変える矢印」だと考えてください。

  • > (上書きリダイレクト):ファイルの中身を空にしてから新しく書き込みます。
  • >> (追記リダイレクト):今のファイルの中身は残したまま、一番最後に行を追加します。

大事なメモを間違えて消さないように、使い分けに注意しましょう。プログラミングの現場では、エラーの記録(ログ)を保存するときなどによく使われます。

4. リダイレクトでファイルを作成する実践例

4. リダイレクトでファイルを作成する実践例
4. リダイレクトでファイルを作成する実践例

それでは、実際にリダイレクトを使ってみましょう。ここでは echo という「入力した文字をそのまま表示する」コマンドを使って、新しいテキストファイルを作ってみます。パソコンに詳しくない方でも、メモ帳を作る操作だと思えば簡単です。


echo "こんにちは、Linuxの世界!" > greeting.txt
cat greeting.txt
こんにちは、Linuxの世界!

上記の例では、まず greeting.txt というファイルを作り、その中に挨拶を書き込みました。その後の cat コマンドは、ファイルの中身を表示するコマンドです。画面にしっかりと挨拶が表示されているのがわかりますね。このように、マウスを使わなくてもファイル操作が自由自在になります。

5. 正規表現とは?高度な検索を行うための「パターン」

5. 正規表現とは?高度な検索を行うための「パターン」
5. 正規表現とは?高度な検索を行うための「パターン」

検索をするときに「『a』で始まる言葉」や「数字が3つ並んでいる場所」など、少し複雑な条件で探したいことがありますよね。そんな時に使う特別な記号のルールのことを正規表現(Regular Expression)と呼びます。

正規表現は少し難しく感じるかもしれませんが、まずは以下の代表的な記号(メタ文字)を覚えるだけで世界が変わります。

  • . (ドット):なんでもいい1文字を表します。
  • * (アスタリスク):直前の文字が0回以上繰り返されることを表します。
  • ^ (ハット):行の先頭を意味します。
  • $ (ドル):行の末尾を意味します。

これらを grep コマンドと組み合わせることで、膨大なデータの中から必要な情報だけをピンポイントで抜き出すことができるようになります。まるで、熟練の探偵が証拠を見つけ出すような正確さです。

6. 正規表現を使って特定の行を抽出してみよう

6. 正規表現を使って特定の行を抽出してみよう
6. 正規表現を使って特定の行を抽出してみよう

具体的な例で考えてみましょう。例えば、設定ファイルの中から「行の先頭が apple で始まる行」だけを探したい場合は、先ほど紹介した ^ を使います。


grep "^apple" fruit_list.txt
apple_red
apple_green

もし ^ を付けずに grep "apple" とだけ書くと、途中に apple が含まれる pineapple(パイナップル)などもヒットしてしまいます。正規表現を使うことで、より厳密に「先頭にあるものだけ!」と指示できるのです。これは大量の顧客リストやログファイルを扱うときに非常に強力な武器になります。

7. パイプ、リダイレクト、正規表現を組み合わせて使う

7. パイプ、リダイレクト、正規表現を組み合わせて使う
7. パイプ、リダイレクト、正規表現を組み合わせて使う

これまでに学んだ「パイプ」「リダイレクト」「正規表現」は、すべて組み合わせて使うことができます。これがLinuxの本当の面白さであり、強力なパワーの源です。

例えば、「システムで動いている全プログラムの中から、'root' ユーザーが動かしているものだけを検索し、その結果をファイルに保存する」という一連の作業をやってみましょう。システム管理者がよく使う、少し高度な操作です。


ps aux | grep "root" > root_processes.txt
ls -l root_processes.txt
-rw-r--r-- 1 root root 4096 Jan  9 10:00 root_processes.txt

この一行では、ps aux(実行中のプログラム一覧を出す)の結果をパイプで grep に渡し、そこで 'root' という文字を正規表現的な考え方で絞り込み、最後にリダイレクト > でファイルに書き出しています。手作業で行えば数分かかることが、たった一瞬で完了します。

8. 注意点!リダイレクトで失敗しないためのコツ

8. 注意点!リダイレクトで失敗しないためのコツ
8. 注意点!リダイレクトで失敗しないためのコツ

初心者が一番やってしまいがちな失敗は、> を使って大切なファイルの中身を消してしまうことです。上書きリダイレクトは、対象のファイルが既に存在していても、問答無用で中身を空にして新しい内容を書き込みます。

もし「元々のデータに追記したいだけ」なのに > を使ってしまうと、古いデータは消えて元に戻せません。不安なときは、まず画面に表示して確認してからリダイレクトするか、常に >>(追記)を使う癖をつけておくと安全です。

また、正規表現で使う記号(* など)は、Linuxの「ワイルドカード」という別の機能と見た目が似ていますが、使い方が少し異なります。最初は混乱するかもしれませんが、何度も使っていくうちに自然と手が覚えていきますので、怖がらずにどんどん試してみてくださいね。

9. 標準入力・標準出力・標準エラー出力とは?

9. 標準入力・標準出力・標準エラー出力とは?
9. 標準入力・標準出力・標準エラー出力とは?

最後に、少しだけ専門的な言葉を紹介します。リダイレクトやパイプを理解する上で避けて通れないのが「標準入出力」という概念です。パソコンが情報をやり取りする「出入り口」のことです。

  • 標準入力(stdin):キーボードなどからの入力。番号は「0」。
  • 標準出力(stdout):コマンドの正常な実行結果の出力。番号は「1」。
  • 標準エラー出力(stderr):エラーメッセージの出力。番号は「2」。

リダイレクトの > は、実は「標準出力(1)」の向きを変えています。もしエラーメッセージだけをファイルに保存したい場合は 2> と書くなど、数字を使い分けることで高度な制御が可能です。今は「ふーん、そんな番号があるんだな」くらいに思っておけば十分ですよ。

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.3
Java&Spring記事人気No3
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.4
Java&Spring記事人気No4
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門