我用sed命令來刪除一個文件頭兩行和最後一行,我想輸出重定向到同一個文件刪除使用SED從一個文件中的行和輸出重定向到同一個文件
實例:
sed '1,2d' '$d' pra >pra
此刪除前兩行從文件。但&最後一行,當我嘗試將輸出重定向到相同的文件,一個問題時。
當我打開並看到重定向的文件pra
文件內沒有任何內容。
有沒有更好的方法來做到這一點.. ..刪除文件的前兩行和最後一行,並使用相同的文件名保存它。
我用sed命令來刪除一個文件頭兩行和最後一行,我想輸出重定向到同一個文件刪除使用SED從一個文件中的行和輸出重定向到同一個文件
實例:
sed '1,2d' '$d' pra >pra
此刪除前兩行從文件。但&最後一行,當我嘗試將輸出重定向到相同的文件,一個問題時。
當我打開並看到重定向的文件pra
文件內沒有任何內容。
有沒有更好的方法來做到這一點.. ..刪除文件的前兩行和最後一行,並使用相同的文件名保存它。
除非您將GNU sed作爲可選軟件包安裝,否則在Solaris 10上是不可能的。無論如何,使用中間文件並在備份文件中使用-i選項是最安全的。
在Solaris 10上你可以這樣做,而不是:
sed '1,2d; $d' file > file.new && mv file.new file
謝謝:)我遵循這種方式爲我的腳本:) –
使用'sed的-i '1,2d' ...'來代替。 – devnull
許多問題會告訴你,讀取和寫入同一個文件會截斷它。 – devnull
@DEVNULL我正在使用Solaris 10和在kshell中使用它的非法選項。 –