首页 新闻 会员 周边 捐助

linuxsh文件内容替换

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-22 16:08

Struct文件内容如下:
[Thread debugging using libthread_db enabled]
[New Thread 0xb56ffb90 (LWP 22238)]
[New Thread 0xb6100b90 (LWP 22237)]
[New Thread 0xb6b01b90 (LWP 22236)]
[New Thread 0xb7502b90 (LWP 22235)]
[New Thread 0xb7f03b90 (LWP 22234)]
0x00385410 in __kernel_vsyscall ()
$1 = {

DsDRConfMaxNdr = 800000000,
DsDRConfMinEtr = 3000,
DsDRConfMaxGdr = 700000000,
DsDRConfMinGdr = 4000
}

要替换Struct文件中"$1 = {"行的"$1"为DsDataRate并从该行开始输出,效果如下:
DsDataRate = {
DsDRConfMaxNdr = 800000000,
DsDRConfMinEtr = 3000,
DsDRConfMaxGdr = 700000000,
DsDRConfMinGdr = 4000
}

目前想到的linuxsh命令是cat Struct | sed 's/$1/DsDataRate/' | tail --lines=+8。但$1前的行数并非固定为8,因此tail --lines=+8可能会定位到错误的行。我也试过awk,但因为不熟悉脚本,没能组合出期望的效果。

请问什么样的命令组合能正确地实现期望的效果,谢谢!

clover_toeic的主页 clover_toeic | 初学一级 | 园豆:62
提问于:2016-03-22 14:20
< >
分享
最佳答案
0

已找到合适的命令:cat Struct | sed 's/$1/DsDataRate/' | awk '/DsDataRate/{t=1} t'

 

clover_toeic | 初学一级 |园豆:62 | 2016-03-22 16:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册