sed實現直接修改檔案內容

2021-08-31 15:22:33 字數 656 閱讀 1078

sed是實現對流的編輯。通常,我們使用sed可以實現內容的編輯後然後儲存成另外的乙個檔案,如果正確的話,才寫入到原始檔。但是某些時候,我們需要直接修改檔案,因為,儲存檔案到乙個檔案,然後再覆蓋原檔案的辦法顯得很麻煩。

其實很簡單,只需要乙個 -i 引數就可以了。

比如,我想替換檔案中的 properties 為 property ,可以使用

sed  's/properties/property/g'  build.xml

這種方式,其實並沒有修改build.xml檔案的內容。如果想儲存修改,通常的做法就需要重定向到另外的乙個檔案

sed  's/properties/property/g'  build.xml > build.xml.tmp

這樣,build.xml.tmp檔案就是修改後的檔案.

如果無誤,那麼就可以用

mv build.xml.tmp build.xml

覆蓋原檔案。

如果想直接修改原始檔,而沒有這樣的過程,可以用下面的命令

sed  -i 's/properties/property/g'  build.xml

這樣,就直接修改了build.xml檔案

注:還有乙個更簡單的方法

sed -in-place -e 's/abc/cba/g' build.xml

sed實現直接修改檔案內容

sed是實現對流的編輯。通常,我們使用sed可以實現內容的編輯後然後儲存成另外的乙個檔案,如果正確的話,才寫入到原始檔。但是某些時候,我們需要直接修改檔案,因為,儲存檔案到乙個檔案,然後再覆蓋原檔案的辦法顯得很麻煩。其實很簡單,只需要乙個 i 引數就可以了。比如,我想替換檔案中的 propertie...

sed直接替換檔案內容

sed i s zhangsan lisi g grep zhangsan rl modules 解釋一下 i 表示inplace edit,就地修改檔案 r 表示搜尋子目錄 l 表示輸出匹配的檔名 這個命令組合很強大,要注意備份檔案。1 sed y 1234567890 abcdefghij te...

sed直接替換檔案內容

sed i s zhangsan lisi g grep zhangsan rl modules 解釋一下 i 表示inplace edit,就地修改檔案 r 表示搜尋子目錄 l 表示輸出匹配的檔名 這個命令組合很強大,要注意備份檔案。1 sed y 1234567890 abcdefghij te...