sed コマンド 行指定の置換・削除(アドレッシング)

sedコマンドの処理は行単位です。何も指定しなければすべての行が対象になりますが、アドレシングを指定することで特定の行だけに作用させることができます。

とにかく早く問題解決したい人はこちら>>直接、データ解析相談

sed コマンド 行指定の方法

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

hello.sh(サンプルデータ)

#! /bin/bash

for i in `seq 1 ${1}`; do
    echo "${i} hello! 123"
done
$ chmod +x hello.sh
$ ./hello.sh 3
1 hello! 123
2 hello! 123
3 hello! 123

行指定の置換

$ 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
とにかく早く問題解決したい人はこちら>>直接、論文相談

関連記事

sed スペース 空白文字の整理・空白行の削除
SED 便利な使い方 ファイル読み込み・ファイル書き出し
sed コマンド 削除(行番号とパターン)
sed コマンド 置換(全体と部分指定)
sed コマンド 置換・削除・アドレッシングまとめ
sed コマンド スクリプトファイルの実行 スクリプトの書き方
sed コマンド 単純な置換
正規表現 メタキャラクタ 検索・置換 前編
正規表現 メタキャラクタ 検索・置換 後編



カテゴリー

今週よく読まれている記事

  1. 学会・会議で英語が絶望的にできなくて困るケース | オンライン開催で「英語力のなさ」を痛感した場合の対処法

    学会・会議で英語ができなくてに困るケース学会やイベント・会議などが、オンラインで開催される…
  2. r tidyverse 使い方 | 列 filter 絞り込み select関数 – dplyrパッケージ

    tidyverseで1つのデータフレームの列の絞り込みは、dplyrパッケージのselect関数を…
  3. プログラミングで疲れた脳をリフレッシュ 〜 鬼滅の刃「感動」と「やる気アップ」でストレス発散!

    ストレス発散は鬼滅で。「50%OFF」で読む!脳のパフォーマンスを上げるには、適度な休憩と…
  4. AWS ディスク容量不足 新しいボリュームを追加する

    バイオインフォマティクスでは大きなファイルを扱うことがあるので、ディスク不足に陥ることがあります。…
  5. 「知っている」と「知らない」とでは、もしものとき、大違いになる – コロナうつ対策

    コロナうつなどという言葉を聞くようになりましたが、派遣切り、解雇、リストラは、これから本格化します…

人気記事

  1. R言語

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

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

    IGV 使い方 インストール〜便利な使い方まで | リファレンス・マッピングデータ・アノテーションを読み込んで表示しよう
    IGV(Integrative Genomics View…

おすすめ記事

  1. awk, シェルスクリプト

    bash 部分文字列・置換・長さ・連結・分割の文字列処理
    bashのよく使う文字列処理、部分文字列・置換・連結・長さ…
  2. R言語, グラフ

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

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