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,但因为不熟悉脚本,没能组合出期望的效果。
请问什么样的命令组合能正确地实现期望的效果,谢谢!
已找到合适的命令:cat Struct | sed 's/$1/DsDataRate/' | awk '/DsDataRate/{t=1} t'