使い方

参考:

sed – テキストの置換処理を得意とするスクリプト言語 | bioinformatics

sed でこういう時はどう書く? – Qiita

正規表現 & sed & awk – Qiita

sed コマンド | コマンドの使い方(Linux) | hydrocul のメモ

sed による文字列操作 | どこでも見れるメモ帳

あえていうほどでもない sed 入門 | TECHSCORE BLOG

sed reference | hata

sed コマンド 正規表現を使って文字を置き換える | @IT

ドキュメント

参考:

Man page of SED | JM Project

sed – a stream editor (gnu.org)

オプション

参考:

Command-Line Options | sed (gnu.org)

メタ文字

  • \d[0-9]
  • \w[0-9a-zA-Z_]

参考:

sed の正規表現で \w \d \s を実現する方法 | 小粋空間

正規表現メモ | 木村浩一

文字クラス

参考:

Character Classes and Bracket Expressions | sed (gnu.org)

POSIX

  • スペース:[[:space:]]

参考:

How to match whitespace in sed? – Super User

最短一致

sed には最短一致の機能は存在しない。代わりに、クラスの否定を使う。

[^X]+:1つ以上の X 以外の文字にマッチする。

参考:

sed で最短一致をする – Qiita

sed で置換する際に最短一致で指定をする | 俺的備忘録 〜なんかいろいろ〜

最長一致、最短一致 についての考察  | ソーシャルゲーム基盤 運用側から見渡す解像度

sed における最短一致について | teratail

後方参照

置換の際に、(.*) などの丸括弧で囲んだ部分が一致した値を \1, \2, … で利用することができる。

参考:

sed コマンドで、正規表現で一致した値を再利用して置換する | goodbyegangster のブログ

スペースを取り除く

参考:

正規表現で連続したスペースを削除する – Qiita

How to match whitespace in sed? – Super User

空行を取り除く

$ cat file.txt | sed '/^$/d'

参考:

sed で空行削除 | inuz の日記

パターン別ファイルの空行削除 (除外) 方法 | 俺的備忘録 〜なんかいろいろ〜

sed を使ってファイルや複数行文字列の末尾の余計な空白行や改行を消す | rcmdnk’s blog

sed でこういう時はどう書く? – Qiita

改行に置き換える

BSD sed の場合、エスケープのためのバックスラッシュ \ の後、一旦クォートを閉じて、ANSI-C クォーティングで囲った改行 $'\n' を入力し、その後にクォーテーションで囲って元の続きを書く。

$ sed -E 's/hoge/\'$'\n''/g'

GNU sed の場合、普通の \n で良い。

$ sed -E 's/hoge/\n/g'

参考:

sed による置換で改行 \n を出力する – Qiita

Mac の sed で改行コードを出力させる 改行コードの違い再確認 – Qiita

sed で改行を出力する | rcmdnk’s blog

mac の sed (bsd) で 改行を置換する | それマグで!

改行を置換する

参考:

改行 (\n) をスペースに置換するコマンド – Qiita

sed で改行を置換・削除する | 俺的備忘録 〜なんかいろいろ〜

OS X の sed で改行を置換する | kanz メモ

sed を使ってファイルや複数行文字列の末尾の余計な空白行や改行を消す | rcmdnk’s blog

sed でファイルの最終行が空行だった場合のみ、その行を削除する | 俺的備忘録 〜なんかいろいろ〜

sed コマンドで改行を部分的に置換したい | teratail

キャリッジリターンを取り除く

参考:

Remove carriage return in Unix – Stack Overflow

CR を CRLF に置き換える

参考:

How to add a carriage return before every newline? – Unix & Linux Stack Exchange

行頭に文字列を追加する

参考:

sed を使って行の先頭に文字列を追加する | Linux と過ごす

タブを置換する

参考:

BSD (Mac) の sed でのタブ文字を変換する3つの方法 | rcmdnk’s blog

シェル変数を展開して使う際のエスケープ

参考:

sed で変数に代入されている & 等のメタ文字のエスケープ処理を行いたい | teratail

-n オプション / p コマンド

参考:

print only matching group – Stack Overflow

Only return the matched string in sed – Unix & Linux Stack Exchange

最終行のみ処理する

※ BSD sed で処理すると必ず最後に改行が入る。(仕様)

参考:

sed で最終行に挿入 – Qiita

sed でファイルの最終行が空行だった場合のみ、その行を削除する | 俺的備忘録 〜なんかいろいろ〜

sed でファイルの最初 or 最後の行に挿入 (追記) する | 俺的備忘録 〜なんかいろいろ〜

sed/awk で最終行から n 行にだけ処理を行わせる | 俺的備忘録 〜なんかいろいろ〜

sed でファイルの最後に行を挿入する方法 | ITを使っていこう

sed でファイルの最後の行だけを置換する | akamist blog

sed で最終行が特定の文字列の場合のみ行削除!| mk-mode BLOG

sed で最初と最後の行を表示する | Bye Bye Moore

改行を挿入する形で置換しようとしたとき、最後に余計な改行が入る – スタック・オーバーフロー

パターンスペース/ホールドスペース

参考:

sed のパターンスペース・ホールドスペースの動作を図で学ぶ – Qiita

GNU/BSD/オプションによるメタ文字の違い (BRE/ERE)

BRE (基本正規表現:-E オプションなし)

  • \(\):グルーピング (エスケープが必要)
  • \{n,m\}n 回から m 回の出現を表す (エスケープが必要)

ERE (拡張正規表現:-E オプションあり)

  • .:任意の一文字を表す
  • ?:0回もしくは1回の出現を表す
  • |:任意のパターンのいずれかを表す

参考:

基本正規表現 (BRE) と拡張正規表現 (ERE) | 気ままなブログ

sed コマンド 正規表現 + の扱い – スタック・オーバーフロー

sed の正規表現で + がイメージと違う動作をします。| teratail

Mac/BSD 版の違い

参考:

Mac 環境で sed を使うときの注意 | tjinjin’s blog

sed コマンド 正規表現 + の扱い – スタック・オーバーフロー

ワンライナー

参考:

ワンライナーでお手軽実行可能な sed 入門 – Qiita

Tips

参考:

sed / 正規表現メモ | Tech random memoranda

sed メモ | カビパン男と私

sed メモ 第二版 |カビパン男と私

タグ:

コメントを残す

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