|
发表于 2006-5-3 19:34:24
|
显示全部楼层
Post by Osirix
譬如第一个文件test1.txt内容:
1
22
333
§ion1
la
la
la
&end
§ion2
bla
bla
&end
------------------------------
第二个文件test2.txt的内容是
haa
haa
haa
ha
ha
okha
-----------------------------
想把test2.txt文件的内容替换test1.txt文件中§ion1和紧邻的第一个&end之间, 有什么好办法呢?
如果这么用的话:
- sed -i -e '/§ion1/r test2.txt' -e '/§ion1/,/&end/d' test1.txt
复制代码
就会连把§ion1那一行和&end也删掉了
不知有没其他好的比较短的写法?
另外, 一直不理解man sed中关于括弧{}的用法, 是不是可以在括弧里面加入任何sed指令, 但试了又不行......
man sed中有段话是这么写的:
- Commands which accept address ranges
- { Begin a block of commands (end with a }).
复制代码
这里的"a block of commands "应该可以是一串指令吧?
try this:
- sed -ie '/§ion1/,/&end/ { /§ion1/r test2
- /§ion1\|&end/!d }' test1
复制代码 |
|