使用sed修改文本

sed -i '/匹配文本/ a\(i\) 內容' filename

注:
1、追加|前插內容可以使用\n換行,不用轉義,換行不用空格分隔
2、匹配文本是全局匹配,所有滿足條件的都會被修改
舉例


1、比如:想在/etc/init.d/tomcat下插入啓動配置
要這麼寫(這是一行)
sed -i '2 a\# chkconfig:112 63 37\n# description# Source Function Library\n/etc/init.d/functions\nJAVA_HOME=/usr/local/jdk1.6.0_23/\nCATALINA_HOME=/usr/local/tomcat\n' /etc/init.d/tomcat

解釋一下:就是在第二行後加入a\後的一大段,\n換行效果如下


2、文件t.txt(僅文本,不考慮對錯)

read -p "num:" n
if [ $n -lt 30 ]
then
    echo "need bigger"
elseif [ $n -gt 30 ]
   echo "need smaller"
fi

b=$n%2|bc
if [ $b -ge 1 ]
then
        echo 1
else
        echo 0
fi
命令行執行:sed -i '/fi/ a\ insert' t.txt
結果

read -p "num:" n
if [ $n -lt 30 ]
then
    echo "need bigger"
elseif [ $n -gt 30 ]
   echo "need smaller"
fi
 insert

b=$n%2|bc
if [ $b -ge 1 ]
then
        echo 1
else
        echo 0
fi
 insert
有多個fi結尾會全部追加

參考鏈接:http://blog.sina.com.cn/s/blog_4cb531010100vk87.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章