0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは!
awkコマンドのおさらい(備忘録)という記事を書きましたが、sedもよく忘れるので、備忘録です。

よく忘れるsedコマンドですが、Linuxコマンドの中でも、かなり代表的なコマンドです。知ってて損はないです。というか、知らないと効率悪いです。

今回は、このsedコマンドについて、基本的な使い方から振り返っていきます。

sedの基本

sedの基本的な構文は以下の通りです。

sed 'コマンド' 入力ファイル
  • コマンド: sedに対して行いたい処理を指定します。
  • 入力ファイル: 処理対象のテキストファイルを指定します。

sedは、指定されたコマンドに従って入力ファイルを処理し、結果を標準出力に出力します。

よく使うsedコマンド

1. 特定の文字列を置換する

sedの最も基本的な使い方の一つが、文字列の置換です。
例えば、sample.txt というファイルの中の "apple" を "orange" に置換したい場合は、以下のように記述します。

$ cat sample.txt
apple,100,red
banana,50,yellow
orange,80,orange
$ sed 's/apple/dog/' sample.txt
dog,100,red
banana,50,yellow
orange,80,orange
  • s/apple/dog/: これがsedのコマンド部分です。 s は置換コマンドで、 / で区切られた最初の文字列 (apple) を2番目の文字列 (dog) に置換します。

2. 行番号を指定して置換する

特定の行だけを置換したい場合は、行番号を指定します。

# 3行目の "banana" を "grape" に置換する
$ sed '2s/banana/grape/' sample.txt
apple,100,red
grape,50,yellow
orange,80,orange

3. 正規表現を使った置換

sedでは、正規表現を使ったより柔軟な置換も可能です。

# 行頭が "a" で始まる行の "red" を "green" に置換する
$ sed '/^a/s/red/green/' sample.txt
apple,100,green
banana,50,yellow
orange,80,orange

4. ファイルを直接編集する

sedは、 -i オプションを使うことで、入力ファイルを直接編集することもできます。

# sample.txt の "apple" を "strawberry" に置換する (ファイルを直接編集)
$ sed -i '' 's/apple/strawberry/' sample.txt
$ cat sample.txt 
strawberry,100,red
banana,50,yellow
orange,80,orange

5. 複数のコマンドをまとめて実行する

sedでは、 ; を使って複数のコマンドを連結して実行することができます。

# 1行目を削除し、2行目の "banana" を "grape" に置換する
$ sed '1d; 2s/banana/grape/' sample.txt
grape,50,yellow
orange,80,orange

あまり使わないけど便利なsedコマンド

$ cat sample.txt
apple,100,red
banana,50,yellow
orange,80,orange
melon,500,green

1. 特定の行を削除する

# 3行目を削除する
$ sed '3d' sample.txt
apple,100,red
banana,50,yellow
melon,500,green

2. 特定の範囲の行を抽出する

# 2行目から4行目を抽出する
$ sed -n '2,4p' sample.txt
banana,50,yellow
orange,80,orange
melon,500,green

3. 行頭にコメントを追加する

# 各行頭に "#" をつけてコメントアウトする
$ sed 's/^/#/' sample.txt
#apple,100,red
#banana,50,yellow
#orange,80,orange
#melon,500,green

まとめ

今回は、基本的なsedコマンドと便利な使い方までを紹介しました。

sedは、非常に強力なテキスト処理ツールであり、使いこなせるようになれば、Linux環境での作業効率が格段に向上します。

ぜひ、今回の内容を参考に、sedコマンドを活用してください🙂

0
2
0

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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?