關於sed二三問 - Linux

Kelly avatar
By Kelly
at 2009-07-19T16:18

Table of Contents

我想用 script + sed 把一個很長檔案的某一行(明確起見, 暫定為第65行)改掉
(總共要改個幾百次, 第一次改成a1, 第二次改成a2,...餘類推.)

假設loop variable叫做number.

我想用的sed指令是 sed -e "65 c\ a$number" filename>tmp ;
tmp>filename
但是這樣的話sed會回傳
Function 65 c\ a$number cannot be parsed.

後來發現, 要能成功使用c這個指令, 好像一定要先產生一個指令檔案 cfile:

65 c\
a$number

然後用 sed -f cfile filename才能成功.

Q1:
所有用c的sed指令, 真的都一定要先產生一個cfile嗎?
會這樣問, 主要是因為要在script裡on the fly產生cfile不是很容易.
Q2:
有沒有辦法讓sed直接去原檔案的第65行更改內容, 而不是把第65行改了存成新檔再
覆蓋原檔? (如果原檔很長, 這樣sed -e "65 c\ a$number">tmp; tmp>filename
還挺浪費系統資源的)

--
Tags: Linux

All Comments

Margaret avatar
By Margaret
at 2009-07-22T04:07
sed -i可以用的話可以直接改檔案內容

Linux 磁碟重整與否

Linda avatar
By Linda
at 2009-07-19T13:22
在請教問題之前, 先提供幾個網頁: http://linux.vbird.org/linux_basic/0230filesystem.php http://en.wikipedia.org/wiki/Defragmentation http://0rz.tw/UFo9P http://phorum. ...

只是一個提案,想要請教可行度

Dinah avatar
By Dinah
at 2009-07-19T13:08
※ 引述《u9423504 (港都夜雨)》之銘言: : ※ 引述《popoblue (老天爺幫幫忙)》之銘言: : 老實說我很討厭微軟。 : 我公司和家裡的電腦 都已經裝了Linux了。 : 在公司的時候,就是在Linux 下 寫程式、文件等作業。 : 回到家之後,上網、看dvd、燒錄、玩 game 都是在 ...

只是一個提案,想要請教可行度

Charlotte avatar
By Charlotte
at 2009-07-19T12:38
※ 引述《popoblue (老天爺幫幫忙)》之銘言: 老實說我很討厭微軟。 我公司和家裡的電腦 都已經裝了Linux了。 在公司的時候,就是在Linux 下 寫程式、文件等作業。 回到家之後,上網、看dvd、燒錄、玩 game 都是在 linux下。 我並不會覺的很難適應。 微軟的作業系統很容易中毒 ...

一開機就啟動traffic shaping

Frederica avatar
By Frederica
at 2009-07-19T12:24
※ 引述《nidor (awful)》之銘言: : 之前使用windows的時候有用過cFosSpeed進行traffic shaping, : 現在也想在Ubuntu平台上達到同樣的目的。 : google了一下,好像簡單的方法就是安裝wondershaper,只有指令列。 : sudo wondersha ...

vista x64 sp2到底能不能讀ext2?

Callum avatar
By Callum
at 2009-07-19T11:49
曾經裝過ex2ifs和ex2fsd這兩個軟體 但是都出現一樣的結果 就是ex2磁區可以在vista x64 sp2下掛載 但是卻無法開啟 還有其他軟體可以嘗試嘛? 或者有其他解決辦法呢? - ...