今天寫shell的時候用到了sed,原本是要刪除所有包含指定字元的行
由於shell用的不是很熟練,所以在命令列上敲了好幾遍,發現沒有問題,結果放到shell裡就不行了,直接看**(**被處理了,主要是表達清楚意思)
有問題得**如下
export a="*** *** = ***x"
export file_full_path=***/***/***/***
echo "'/$a/d' $file_full_path"
sed -i '/$a/d' $file_full_path
因為shell裡將sed這句話原封不動的列印了出來,結果發現乙個詭異的現象,shell執行後sed沒有生效,但是將執行shell時列印的命令複製貼上執行發現居然能過!
查詢資料後發現,原來在shell裡用sed,如果有$這樣的特殊字元,單引號要換成雙引號才可以
這個坑,我先躺了~
Shell中的sed命令
sed的優點 sed速度快,在啟動vim的時間,sed已經完成了需要執行的操作 echo this is a test sed s test testing sed s dog tiger test1sed 2s dog tiger test1 指定替換第二行 sed 4s dog tiger te...
shell中的sed命令
sed命令 主要是對文字進行編輯,當需要對文字進行反覆操作,或者編寫指令碼時,會經常用到!sed命令的組成 和其他命令不太一樣的是多了個動作。一般都是命令 引數 正則變數,文字變數。在sed中可以在正則變數裡新增動作,而且一說到正則肯定離不開轉義字元,它的轉義字元也不太一樣。引數 引數功能 備註 e...
Shell指令碼sed命令
1 p命令 命令p用於顯示模式空間的內容。預設情況下,sed把輸入行列印在螢幕上,選項 n用於取消預設的列印操作。當選項 n和命令p同時出現時,sed可列印選定的內容。例子 plain view plain copy 1 sed my p datafile 預設情況下,sed把所有輸入行都列印在標準...