Linux sedの高度な使い方の例


Linuxでは,sedは置換や挿入などの機能を実現し,用法を簡単にまとめることができる.
1、いくつかの文字を置換する時、"/"で各部分を隔てます;
sed -i 's/   /   /g'   

注意:元の内容は行全体であってもよいし、行の一部であってもよい.
2.置換する場合は、「元の内容」や「新しい内容」に特殊文字(例えば「/」や「#」など)が含まれている場合は、次のようなフォーマットが正しいなど、他の記号で各部分を区切ることができます.
sed -i 's,   ,   ,g'   

 
sed -i 's#   #   #g'   

 
sed -i 's:   :   :g'   

 
sed -i 's~   ~   ~g'   

3、新しい行の内容を挿入する場合、書き方:
sed -i '/    /a         '   

注意:aはappendを表し、後で記号を追加する必要はありません.「元の行の内容」が完全に入力されていない場合、たとえば最初の部分だけが入力されている場合、新しい内容は次の行に挿入されます.
325行目以降に新しい行の内容を挿入する場合、書き方
<CODE>sed -i '325a         '   </CODE>

4、一部のエスケープ記号には、tがインデントを表すなどの特別な意味がある場合があります.以下の変換はsedとechoに適用されます.
  
\r   \t   \v   \b   \a   "alert"( ) \0xx ASCII
=================================================
1、普通の書き換えはI love cakeをYou love appleに置き換え、書き換え:
sed -i 's/I love cake/You love apple/g' aaa.txt

2,通常置換の書き方(特殊文字を含む処理)置換文字に特殊文字が含まれている場合、例えば/usr/local/php.iniを/etc/phpに置き換える.ini、書き方:
sed -i 's/\/usr\/local\/php.ini/\/etc\/php.ini/g' aaa.txt  #  "\"     ,   sed -i 's,/usr/local/php.ini,/etc/php.ini,g' aaa.txt   #        ,  !sed -i 's#/usr/local/php.ini#/etc/php.ini#g' aaa.txt   #        ,  !

3、特定の行番号の後に1行を挿入25行目以降に新しい内容I love apple(挿入内容が26行目になる)を挿入し、書き方:
sed -i '25aI love apple' aaa.txt

sed -i '25a\I love apple' aaa.txt    #       ,       ,     

25行目に新しい内容を挿入する/usr/local/php.ini、書き方:
sed -i '25a/usr/local/php.ini' aaa.txt      #       

4、特定の内容の後に1行を挿入し、ある行の内容がI love apple(行番号が分からない)であると仮定し、この行の後ろにDo you love itを1行追加するには、書き方:
# sed -i '/I love apple/aDo you love it' aaa.txt

5,ある行の内容を置き換えるには3行目の内容をzhukunに完全に置き換える.Netpptpd passwd*、書き方:
sed -i "3s/.*/zhukun.net pptpd passwd */" aaa.txt

6、ある行の内容を127.0.0.1で始まる行をchangedに置き換え、ここでは変数を使用する書き方を変えます.
var=127.0.0.1sed -i "/^$var/cchanged" aaa.txt

7,ある行の内容を削除して削除する[email protected]最初の行:
sed -i "/^[email protected]/d" aaa.txt