「Sed」の版間の差分

提供: Wikinote
移動: 案内検索
(基本構文)
 
(同じ利用者による、間の4版が非表示)
行1: 行1:
* 基本構文
+
== 参考リンク ==
 +
* [http://www.gnu.org/software/sed/manual/sed.html sed, a stream editor]
 +
** 本家のオンラインマニュアル。
 +
* [http://www.grymoire.com/Unix/Sed.html Sed - An Introduction and Tutorial]
 +
** そこそこ網羅されている。
 +
 
 +
== 基本構文 ==
 
  sed [-n] [-e command] [-f command_file] [file ...]
 
  sed [-n] [-e command] [-f command_file] [file ...]
 
; -n
 
; -n
 
: マッチしなかったら表示しない
 
: マッチしなかったら表示しない
  
* アドレス
+
=== アドレス ===
** <code>n</code> - n 行目のみ (最終行 : $)
+
* <code>n</code> n 行目のみ (最終行 : $)
** <code>m,n</code> - m 行目から n 行目まで
+
* <code>m,n</code> m 行目から n 行目まで
** <code>n,/str/</code> - n 行目から str がマッチする行まで
+
* <code>n,/str/</code> n 行目から str がマッチする行まで
*: ※ アドレスの後に <code>!</code> を付けると否定
+
* アドレスの後に <code>!</code> を付けると否定
* コマンド
+
 
** p - 出力
+
=== コマンド ===
** d - 削除
+
* p 出力
*** <code>$ sed -e '/begin/,/end/d' FILE</code> - begin を含む行から end を含む行までを削除
+
* d 削除
** y - 一文字置換 (tr コマンドと一緒)
+
** 例) <code>$ sed -e '/begin/,/end/d' FILE</code> - begin を含む行から end を含む行までを削除
** s - 置換
+
* y 一文字置換 (tr コマンドと一緒)
*** <code>$ sed -e 's/foo/bar/g' FILE</code> - foo を bar に置換
+
** 例) <code>$ sed -e 'y/12/ab/' FILE</code> - FILE 中の 1 を a に、2 を b に置換
** q - 終了
+
** g フラグなしでも、すべての文字に適用される
* フラグ
+
* s — 置換
** g - 同一行中のマッチをすべて置換
+
** 例) <code>$ sed -e 's/foo/bar/g' FILE</code> - foo を bar に置換
* 特殊記号
+
* q 終了
** & - マッチした文字列
+
 
*** <code>$ sed -e 's/[0-9]*/(&)/g' FILE</code> - 数字に括弧をつける
+
=== フラグ ===
** ( ), \n - パタン部分指定
+
* g 同一行中のマッチをすべて置換
*** <code>$ sed -e 's/\(A\) \(B\)/\2 \1/g' FILE</code> - A と B の位置を入れ替える
+
 
 +
=== 特殊記号 ===
 +
* & マッチした文字列
 +
** 例) <code>$ sed -e 's/[0-9]*/(&)/g' FILE</code> - 数字に括弧をつける
 +
* \( \), \N — パタン部分指定
 +
** 例) <code>$ sed -e 's/\(A\) \(B\)/\2 \1/g' FILE</code> - A と B の位置を入れ替える
 +
 
 +
== 覚え書き ==
 +
pattern1 と pattern2 に挟まれた部分以外を表示する。
 +
sed -e '/pattern1/,/pattern2/d' FILE

2009年9月8日 (火) 07:38時点における最新版

参考リンク

基本構文

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