1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

リダイレクト,パイプラインに関する整理

Last updated at Posted at 2025-04-15

リダイレクト(>, >>, <)やパイプライン(|)に関するストリーム処理は、Unix系シェル(bash など)での標準的な入力・出力の操作に関わる重要な概念です
唐突な記号の登場により、毎年新人が躓きやすい箇所でもあるので以下にそれぞれの機能をまとめて整理してみます


🚤 ストリームの基本

ストリームは、処理の流れを表す概念です
シェルには、以下の3つのストリームがあります:

ストリーム 番号 意味
標準入力 0 キーボード等の入力
標準出力 1 通常の出力
標準エラー 2 エラー出力

↪️ リダイレクト

リダイレクトは、標準の出力先(ターミナル画面)や入力元(キーボード)を変更します:

標準出力のリダイレクト

 出力が、ターミナルには表示されず代わりにファイル等へ書き込まれます

>:上書き(ファイルがあれば削除して書き込む)

echo "Hello" > file.txt 

>>:追記

echo "World" >> file.txt

標準入力のリダイレクト

 入力を、キーボード入力に代わりファイル等から読み込みます

<:ファイルからの入力

wc -l < file.txt

<<:指定文字(ここでは"EOF")までの文字列の入力

grep apple <<EOF
apple
lemon
pineapple
EOF

標準エラーのリダイレクト

2>:エラーをファイルに出力

ls kyomu 2> error.log

2>&1:エラー出力を標準出力と同じ場所へ出力

command > out.log 2>&1

🔗 パイプライン(|

パイプは、コマンドの「標準出力」を、次のコマンドの「標準入力」として渡します:

ls -l | grep ".txt"

上記は、ls -l の結果から .txt を含む行だけを抽出します

複数のパイプも可能です:

cat file.txt | grep "error" | sort | uniq

🖇️ teeコマンド

teeコマンドは、出力を指定(複数でも可)のファイル等に保存しつつ標準出力にも流します:

ls -l | tee all.txt

🧩 xargsコマンド

xargsコマンドは、出力(複数でも可)を次のコマンドの引数に指定します:

ls -l | grep ".ai" | xargs rm -i
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?