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...