【Linuxトラブル解決】sed: command not found の原因と解決方法

  • URLをコピーしました!
目次

はじめに

Linuxを使っていると、テキスト処理に便利な sed コマンドを使おうとして

sed: command not found

というエラーに遭遇することがあります。

初学者からすると「なぜ見つからないの?」「インストールされてるはずでは?」と混乱しやすいポイントです。

この記事では、なぜこのエラーが発生するのか、そして原因ごとの解決方法を丁寧に解説します。

エラーの意味を理解しよう

エラーメッセージ command not found は、シェルが指定されたコマンドを探したけれど、
実行可能ファイルをPATH上で見つけられなかった
という意味です。

つまり、「sed という名前のコマンドを呼んだけど、どこにも無いよ」と言われているわけです。

この時に考えるべき原因は、大きく以下の3つです。

  1. sedがインストールされていない
  2. sedはあるけど、PATHに通っていない
  3. 環境依存でコマンド名や場所が異なる

原因と解決策

1. sed がインストールされていない場合

なぜ起きる?

最小構成のLinux(特にDockerイメージや軽量ディストリビューション)では、
標準で sed が入っていないことがあります。
そのため which sed を叩いても見つかりません。

確認方法

which sed

結果が空なら、インストールされていません。

解決方法

ディストリビューションごとにパッケージをインストールします。

# Ubuntu / Debian
sudo apt update && sudo apt install sed

# CentOS / RHEL / Amazon Linux
sudo yum install sed

# Alpine Linux
sudo apk add sed

なぜこれで直るのか?

  • sed はパッケージ管理システムから配布されており、インストールすることで実行ファイルが /bin/sed/usr/bin/sed に配置されます。
  • これらの場所は通常PATHに含まれているため、sed が呼び出せるようになります。

2. PATHに通っていない場合

なぜ起きる?

  • sed自体はインストールされているが、PATH という環境変数にその場所が含まれていないとシェルが見つけられません。
  • 特にカスタム環境やDockerなどで独自のディレクトリに置かれていると起こりがちです。

確認方法

ls /bin/sed /usr/bin/sed 2>/dev/null

もし存在するのに sed: command not found になる場合は、PATHが問題です。

echo $PATH

で現在のPATHを確認しましょう。

解決方法

一時的にPATHを追加する場合:

export PATH=$PATH:/usr/bin

恒久的に設定する場合は ~/.bashrc~/.zshrc に追記します。

なぜこれで直るのか?

  • シェルは PATH に記載されたディレクトリを順に探してコマンドを実行します。
  • そこに sed のある場所を追加することで「見つからない」が解決されるわけです。

3. 環境依存でコマンドが異なる場合

なぜ起きる?

  • 一部のUnix系OSや組み込み環境では、sed がインストールされていない代わりに gsed(GNU sed)が用意されていることがあります。
  • macOSでは sed が標準で入っていますが、GNU版と挙動が異なり、パッケージで gsed を追加することもあります。

確認方法

which gsed

解決方法

  • macOSでGNU版を使いたい場合: brew install gnu-sed その後 gsed コマンドを利用します。

なぜこれで直るのか?

  • sed という名前に依存せず、環境に応じた実行ファイルを呼び出す必要があるためです。
  • 特に移植性を考える場合は「この環境はGNU sedかBSD sedか」を意識するのが重要です。

まとめ

  • sed: command not found は「シェルがsedを探せなかった」という意味。
  • 主な原因は 未インストール / PATH設定ミス / 環境依存
  • それぞれの解決方法を理解することで、再発防止にもつながります。

👉 ポイントは「なぜその解決策が有効なのか」を理解すること
ただ闇雲に sudo apt install sed するだけでなく、「どこで見つからなくなっていたのか?」を確認する習慣を持つと、Linuxの理解が一段深まります。

よくあるエラーと解決方法まとめ
目次