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文件
其實很簡單,只需要一個 -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