クリップボードにコピーしました!
文字列のsed

sedで分割する方法|URLを改行で分割する基本コマンド解説

updated: 2026/04/14 created: 2026/04/12

はじめに

こんにちは、コマンド学習を始めたばかりのターナーです。今回は「sedで分割」をテーマに、URLをスラッシュ(/)ごとに改行して分割する方法を解説します。シンプルなコマンドですが、初学者がつまずきやすいポイントも多いので、実行前後の状態や失敗例も含めて丁寧に説明していきます。

参考:sed, a stream editor

今回使用するコマンド

sed 's/\//\n/g' input.txt > output.txt

このコマンドは、URLの「/」を改行に置き換えることで、文字列を分割する処理を行います。つまり「sedで分割」を体験できる基本例です。

実行前の状態(ファイル名:input.txt)

まずは、処理対象の内容を確認します。今回は以下のような1行のURLを想定します。

https://running-terminal-commands/sed-split-url

この状態では、URLが1行にまとまっているため、構造が少し見づらいです。

実行後の状態(ファイル名:output.txt)

コマンドを実行すると、以下のようにスラッシュごとに改行されます。

https:

running-terminal-commands
sed-split-url

このように、URLの構造が視覚的に分かりやすくなります。特にログ解析やパス構造の確認などで役立ちます。

実行画像

コマンドの仕組みを理解する

初心者の方がつまずきやすいポイントなので、分解して説明します。

  • echo "文字列"→ 指定した文字列を出力します
  • |(パイプ)→ 左の出力を右のコマンドに渡します
  • sed 's/\//\n/g'→ 置換処理を行います
  • s:置換コマンド
  • /\//:スラッシュを指定(エスケープが必要)
  • /\n/:改行に置換
  • g:すべての一致を対象にする

ここでのポイントは「/」が区切り文字として使われているため、\でエスケープする必要がある点です。

よくある失敗例(3つ)

① スラッシュをエスケープしない

sed 's///\n/g'

→ エラーになります。「/」は区切り文字なので、そのまま書くと構文が壊れます。

② シングルクォートを忘れる

sed s/\//\n/g

→ シェルが解釈してしまい、意図通り動きません。必ず ' ' で囲みます。

③ 入力ファイル名を指定し忘れる

sed 's/\//\n/g' > output.txt

→ 何も出力されない、または入力待ち状態になります。これは「sedに処理対象のファイルが渡されていない」ことが原因です。そのため、標準入力からの入力待ちになってしまいます。

正しくは、対象ファイルを指定します。

sed 's/\//\n/g' input.txt > output.txt

sedで分割を使うメリット

以下のような場面で役立ちます。

  • URLやパスの構造を確認したいとき
  • ログファイルを見やすくしたいとき
  • 特定の区切り文字で分解したいとき

特にシェルスクリプトを書く際には、テキスト加工の基本として非常に重要です。

まとめ

今回は、sedを使って文字列を改行で分割する方法を学びました。

s/置換前/置換後/g の基本を理解する
スラッシュのエスケープに注意する
コマンドが止まっているように見える原因の一つが「入力待ち」であると理解する

シンプルなコマンドですが、理解すると応用の幅が広がります。私も最初は「なぜバックスラッシュが必要なのか」でつまずきましたが、仕組みを理解すると納得できました。

これからも少しずつコマンドに慣れていきましょう!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

©︎ 2025-2026 running terminal commands