Sed

提供: Wikinote
2009年9月8日 (火) 07:38時点におけるHagio (トーク | 投稿記録)による版 (基本構文)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

参考リンク

基本構文

sed [-n] [-e command] [-f command_file] [file ...]
-n
マッチしなかったら表示しない

アドレス

  • n — n 行目のみ (最終行 : $)
  • m,n — m 行目から n 行目まで
  • n,/str/ — n 行目から str がマッチする行まで
  • アドレスの後に ! を付けると否定

コマンド

  • p — 出力
  • d — 削除
    • 例) $ sed -e '/begin/,/end/d' FILE - begin を含む行から end を含む行までを削除
  • y — 一文字置換 (tr コマンドと一緒)
    • 例) $ sed -e 'y/12/ab/' FILE - FILE 中の 1 を a に、2 を b に置換
    • g フラグなしでも、すべての文字に適用される
  • s — 置換
    • 例) $ sed -e 's/foo/bar/g' FILE - foo を bar に置換
  • q — 終了

フラグ

  • g — 同一行中のマッチをすべて置換

特殊記号

  • & — マッチした文字列
    • 例) $ sed -e 's/[0-9]*/(&)/g' FILE - 数字に括弧をつける
  • \( \), \N — パタン部分指定
    • 例) $ sed -e 's/\(A\) \(B\)/\2 \1/g' FILE - A と B の位置を入れ替える

覚え書き

pattern1 と pattern2 に挟まれた部分以外を表示する。

sed -e '/pattern1/,/pattern2/d' FILE