shell中sed命令失靈,又乙個坑。。。

2021-08-03 12:02:09 字數 454 閱讀 3219

今天寫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把所有輸入行都列印在標準...