sed後將原始檔案存檔的問題 - Linux

Table of Contents

請教各位: 今天我在某一目錄下約有近數百個副檔名.s的檔案,我要將 .s裏頭修改字串
後存檔,網路上查到 sed -i的參數可以支援,但目前所在的系統sed沒有支援-i這個參數
那我該怎麼下指令,可以將sed字串取代後直接存檔。如:
sed -n 's/customer/product/gp' *.s
以上這個指令只會將取代後的結果顯示在螢幕上,但並未將原始檔案修改。

我寫一支 king.sh檔,內容如下;
for F
do
FBASE=`basename $F .s`
sed -n 's/prodmod/usermod/gp' $FBASE.s>/backup/sam/tt/$FBASE.s
done

我執行king.sh *.s後就可以將我要的東西,以導向的方式導到其他目錄,然後再手動將檔
案貼回原來的目錄。 用script的方式可以解決,但有沒有辦法如一開始所指的,
sed一行指令,能將檔案不但取代,還直接存檔?

謝謝。

--

All Comments

Mason avatarMason2010-05-09
-i
Kelly avatarKelly2010-05-10
訊息 sed: illegal option -- i
Oliver avatarOliver2010-05-17
謝謝樓上,不過我是想知道如何一行指令使變更並存檔
Leila avatarLeila2010-05-18
還是只有一個方法,就是用迴圈搭配mv或cp的方式?
Tracy avatarTracy2010-05-18
perl, or loop.. http://bit.ly/c13diw
Erin avatarErin2010-05-19
不要 -n, sed -i 'xx' *.s
Hedda avatarHedda2010-05-21
小弟TRY的系統沒有支援-i @@" 訊息如二樓所示