2013/06/28

sed 上書き 正規表現

sed

基本的には行単位の処理ね。

-i 上書き
-e pattern
-f pattern file



$ sed -e "s/oldtext/newtext/g"        #文字列の変換
$ sed -e "s/text//"                   #文字列の削除
$ sed -e "s/^text//"                  #行頭にtextがあった場合削除
$ sed -e "s/text\$//"                 #行末にtextがあった場合削除
$ sed -e "s/abc/abcxyz/g"             #abcの後に文字列を追加
$ sed -e "s/^/text/"                  #行頭に文字列を追加
$ sed -e "s/\$text/"                  #行末に文字列を追加
$ sed -e "s/.*/abc/"                  #.*は全ての文字列を表す
$ sed -e 's/<tab>/<space>/g'          #タブをスペースに変換
$ sed -e 's/<space><space>*/<space>/g' #複数のスペースを1つのスペースに変換
$ sed -e 's/[<space><tab>][<space><tab>]*/<space>/g'# ホワイトスペースを1つのスペースに変換$ sed -e 's/^[<space><tab>]*//'       #行頭のホワイトスペースを削除
$ sed -e 's/[<space><tab>]*$//'       #行末のホワイトスペースを削除
$ sed -e "/text/d"                    #textを含んだ行を削除
$ sed -e '/^$/d'                      #空白行を削除
$ sed -e "5,20s/oldtext/newtext/g"    #5行目から20行目を変換
$ sed -e '1d'                         #1行目を削除
$ sed -n '1p'                         #1行目を表示