shell 腳本匹配一行然后替換整行(全局替換)

Backgroud

grepsedawk俗稱Linux三劍客
grep常用于字符串搜索功能
sed常用于以行為單位對文本進(jìn)行處理
awk是更為細(xì)粒度的處理,可以指定分隔符將一行(一條記錄)劃分為多個字段,然后以字段為單位處理文本,幾乎可以實現(xiàn)grepsed所能實現(xiàn)的所有功能

實例

  • 有一個文件 logicaltool.sh,我們要替換其中的一行,如下
server_num= ps -ef | grep logical_tool | wc -l
  • 整行替換為
server_num= ps -ef | grep logical_tool | grep -v grep | grep -v logicaltool.sh | grep -v vi | grep -v tail | wc -l
  • 替換腳本 replace.sh
replacement="server_num= ps -ef | grep logical_tool | grep -v grep | grep -v logicaltool.sh | grep -v vi | grep -v tail | wc -l"
sed -i "/^server_num=*/c$replacement" /home/logicaltool.sh

實測沒有問題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容