トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

sedの使い方 のバックアップ差分(No.4)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
*sedの使い方 [#je1c874a]

''sed''は文字列置換をしてくれるコマンドです。

使い方は至って簡単。正規表現を使わなければ笑

 sed 's/置換対象文字列/置換後文字列/'

sed は各行に対して、最初に見付かった文字列しか変換を行わない。

対象全部を置換したい場合は、最後に「''g''」をつけます。

 sed 's/置換対象文字列/置換後文字列/g'

実行例は以下の通り

 # date "+%H:%M:%S"
 17:45:20
 # 
 # date "+%H:%M:%S" | sed 's/:/./'   ①
 17.45:20
 #
 # date "+%H:%M:%S" | sed 's/:/./g' ②
 17.45.20
 #
 # date "+%H:%M:%S" | sed 's/://g'  ③
 174520 
 #

実行例の説明
-①:gをつけない場合、パターンにマッチした最初の文字列「:」のみを「.」に置換
-②:gをつけた場合、パターンにマッチしたすべての文字列「:」を「.」に置換
-③:置換後文字列を指定しなかった場合、パターンにマッチした文字列「:」を削除

へー、簡単。

***リンク [#vccba018]
このサイトをみて使ってみました。
-[[UNIXの部屋 コマンド検索: sed:http://x68000.q-e-d.net/~68user/unix/pickup?sed]]
-[[http://www.jp.freebsd.org/cgi/mroff.cgi?sect=1&cmd=&lc=1&subdir=man&dir=jpman-6.0.0/man&man=sed]]
-[[http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE]]
-[[http://www.edu.ics.saitama-u.ac.jp/~j0114ky/first/html_enshu/9.3.html]]
-[[http://www.kabipan.com/computer/sed/index.html]]

***サンプル [#cc442b93]

本のタイトルの第~巻を除去する正規化処理

 [root@localhost tmp]# cat test.txt 
 坂の上の雲第1巻
 坂の上の雲第12巻
 
 [root@localhost tmp]# cat test.txt | | sed s/第[0-9]巻//g 
 坂の上の雲
 坂の上の雲第12巻
 
 [root@localhost tmp]# cat test.txt | sed s/第[0-9]*巻//g 
 坂の上の雲
 坂の上の雲

*** サンプル2 [#dd0bbb17]

こんなファイルがあります。

     <resumptionToken completeListSize="10505" cursor="">
         2010-12-08/2010-12-15/zassaku/dcndl_porta/R000000004-I000897285
     </resumptionToken>

これを、こんな感じでsedすると

 sed -e '/cursor=\"\">/N;s/\n//' test.xml | grep cursor | sed -e 's/.*cursor=\"\">//;s/\s//g'

こんな感じになります。

 2010-12-08/2010-12-15/zassaku/dcndl_porta/R000000004-I000897285