sed コマンド 置換・削除・アドレッシングまとめ

バイオインフォ道場、くまぞうです。

sedはとても便利なツールです。よく使うコマンドやアドレシング・否定の指定方法など、ちょっとしたテクニックも知っておくと便利です。

スポンサーリンク



よく使うsedコマンド

置換や削除はよく使います。その他にも、特定の行だけの処理・パターンを除外した処理などできます。

hello.sh(サンプルとして使います)

#! /bin/bash

for i in `seq 1 ${1}`; do
    echo "${i} hello! 123"
done

置換

置換を行う際はsコマンドを使います。更に、複数実行する場合は-eオプションを使います。マッチしたパターン全て(または指定部位)に処理を適用したい場合は、gフラグ(または数字)を使います。

コマンドで確認

$ echo "hello world!" | sed 's/hello/HELLO/'  # 文字列を指定
HELLO world!

$ echo "hello world!" | sed 's/\W/-/g'        # 文字列クラス(\W)を指定(全体)
hello-world-

$ echo "hello world!" | sed 's/\W/-/2'        # パターンマッチの2番目だけを処理
hello world-

削除

行の削除を行う際はdコマンドを使います。アドレスやパターンと一緒に指定します。

コマンドで確認

$ sh hello.sh 3 | sed -e '1d' -e '$d'  # 先頭行&末尾行の削除
2 hello! 123

$ sh hello.sh 3 | sed '/^[13]/d'       # 先頭が「1 or 3」の行削除
2 hello! 123

特定の行だけに作用する

sedの処理は行単位ですが、アドレシングを指定して特定の行だけに作用させることができます。置換s削除dコマンドの前に、開始行番号,終了行番号を書くと対応した範囲にだけコマンドを適用することができます。尚、開始や終了は、それぞれ省略することができます。行番号の代わりに、パターン(/pattern/s/...)を指定するとパターンに合致した行だけに、コマンドを適用することができます。また、置換した行だけ表示させる場合は、パターンスペースを自動表示を抑制する-nオプションと表示に関するpフラグを組み合わせると良いです。

コマンドで確認

$ sh hello.sh 3 | sed '1,3s/hello/HELLO/'      # 1〜3行目
1 HELLO! 123
2 HELLO! 123
3 HELLO! 123

$ sh hello.sh 3 | sed '/^[13]/s/hello/HELLO/'  # 先頭が「1 or 3」の行
1 HELLO! 123
2 hello! 123
3 HELLO! 123

$ sh hello.sh 3 | sed -n '2s/hello/HELLO/p'    # 置換した行だけ表示
2 HELLO! 123

条件からの除外

パターンで表現するには、否定の方法も知っておくと簡単にできる場合があります。否定は、置換コマンドsや削除コマンドdの前に、!を指定します。例えば、アドレシングを用いた場合に範囲を指定するのは容易ですが、飛び飛びで指定する場合は面倒です。除外したいパターンが明確な場合に、役に立つかもしれません。

コマンドで確認

$ sh hello.sh 3 | sed -n '2!s/hello/HELLO/p'         # 2行目以外(否定)
1 HELLO! 123
3 HELLO! 123

$ sh hello.sh 5 | sed -n '/^[24]/!s/hello/HELLO/p'   # 先頭「2 or 4」以外(否定)
1 HELLO! 123
3 HELLO! 123
5 HELLO! 123
スポンサーリンク





ピックアップ記事

  1. awk for 繰り返し処理 簡単なサンプルでわかる インクリメント・デクリメント、変わった繰り返し

    awkのfor文は、カウンタを目印にして処理を繰り返したいときによく使われます。for文では、カウ…
  2. R plot 重ねる方法3パターン サンプルでわかるRの使い方

    Rでグラフ (plot) を重ねる方法は、「単純な追加」「図に重ねて描画」「濃淡で重なり表現」の3…
  3. R 使い方 グラフの色 自作のカラーパレットとデフォルトのカラーパレット

    グラフを描画する際、色の組み合わせを1つ1つ考えるのは面倒ですよね。Rには、あらかじめ色の組み合わ…

人気記事

  1. Excel, その他, 統計

    z-score 計算方法 エクセル(Excel) 編
    統計処理で、大きく変化しているなどの判断基準にも使われる値…
  2. IGV, 解析ツール

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…
  3. R データ型 - 文字列・ベクター・データフレーム・マトリックス など-, R言語, スクリプト

    R subset関数 データフレームやmatrixからの条件指定による行・列の抽出
    R の subset関数は、データフレームやマトリックスか…

おすすめ記事

  1. R言語, グラフ

    R 使い方 軸・ラベルの調整(向き・サイズ・色など) グラフの描き方
    Rによるplot(グラフ)の描画は、手軽で大変便利です。た…
  2. awk, bash 文字列操作, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  3. bash 応用, シェルスクリプト

    シェル スクリプト ファイル存在チェック・空のファイルチェック
    bashでスクリプトを作成するときに、よく使うのがファイル…