[問題] 關於sed二三問
我想用 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
還挺浪費系統資源的)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 169.232.152.82
推
07/19 18:38, , 1F
07/19 18:38, 1F