|
现在有如下类似的数据(开始的示例有写情况没有选进来):- 281| 0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
- 282| 0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 A0 00
- 283| 0:00:05| 271743|TD_SC| 0xFF|FF 20 20 20 20 20 20 61 64 61 6D 7A 79 67 20
- 73 63 72 39 5F 31 44 72 61 77 48 65 61 64 49 63 6F 6E 20 69 6E 70 75 74 20 70
- 61 6E 65 6C 20 66 6F 72 20 57 61 70 00 34 00 00 00
- 284| 0:00:05| 271743|TD_SC| 0xFF|FF 23 23 23 20 61 64 61 6D 7A 79 67 20 73 63
- 72 39 5F 31 44 72 61 77 48 65 61 64 49 63 6F 6E 20 63 61 6C 6C 69 6E 67 20 61
- 64 72 65 73 73 3D 34 35 62 36 30 64 00 34 00 00 00
- 285| 0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 30 00 00 00 00 00
- 286| 0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 31 00 42 4D 36 54 00 00
- 00 00 00 00 36 04 00 00 28 00 00 00 80 00 00 00 A0 00 00 00 01 00 08 00 00 00
- 00 00 00 00 00 00 C4 0E 00 00 C4 0E 00 00 00 01 00 00 00 01 00 00 C4 9E 57 00
- 5C 4D 30 00 32 2A 1D 00 2E 2D 24 00 3A 32 24 00 A2 8B 5A 00 7B 64 3B 00 53 4D
- 3A 00 82 64 31 00 63 56 3A 00 2A 25 1B 00 15 15
- 287| 0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 32 00 80 00 00 00
- 288| 0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 33 00 A0 00 00 00
- 289| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 31 00 80 00
- 290| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 32 00 A0 00
- 291| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 33 00 80 00
- 292| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 34 00 A0 00
- 293| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 35 00 80 00
- 294| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 36 00 A0 00
- 295| 0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 37 00 00 00 00 00
- 296| 0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 36 04 00 00
- 297| 0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 80 00
- 298| 0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 31 31 00 08 00 00 00
- 299| 0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 39 00 82 10 41 08 41
- 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41
- 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41
- 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41
- 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 300| 0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 30 00 01
- 301| 0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 47
- 302| 0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 48
- 303| 0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 30 00 00
- 304| 0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 31 00 00 00 00 00 00 00
- 305| 0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08
- 228| 0:00:04| 271475|TD_SC| 0xFF|FF 23 23 23 20 61 64 61 6D 7A 79 67 20 73 63
- 72 39 5F 31 44 72 61 77 48 65 61 64 49 63 6F 6E 20 63 61 6C 6C 69 6E 67 20 61
- 64 72 65 73 73 3D 34 35 62 36 30 64 00 34 00 00 00
- 229| 0:00:04| 271475|MMI >OSIC |L1C_INIT_TAT_REQ |
- 10 00 32 00 AB 00 00 00 9C AF 75 30 18 52 61 00
- Process state: 0x615218 = UNK
- 230| 0:00:04| 271475|MMI >HLIGH|UNKNOWN 9C20
- 18 00 32 00 9C 00 20 9C 02 01 04 00 3C 81 09 30 B1 1E 2E 00 18 52 61 00
- Process state: 0x615218 = UNK
- 231| 0:00:04| 271475|MMI >HLIGH|UNKNOWN 9C00
- 14 00 32 00 9C 00 00 9C E0 35 38 00 0B 01 5F 31 18 52 61 00
- Process state: 0x615218 = UNK
- 232| 0:00:04| 271475|TD_SC| 0xFF|FF 32 31 32 31 32 31 32 31 30 00 02
复制代码
目的是把行首以数字开始接着一个“|”的行之后,又不是行首以数字开始接着一个“|”的行之间的内容追加到刚刚匹配的行后。
比如如下数据:- 305| 0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
- 41 08 41 08 41 08 41 08 41 08 41 08
- 306| 0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
复制代码 就是要把“305|”行之后的数据行(“306|”之前的数据行)按照一个字节然后一个空格的规则追加到"305|"行之后。
我写好了一个:- sed -n -e :B -e '/^[0-9]\{1,\}\|/{s/^@//; h;} /^[^0-9]/{s/^@//; p; d;}' -e :A -e 'n;/^[0-9A-F][0-9A-F][ ]\{1\}/{ x; G; s/\n/ /; h; tA; }' -e 'x; p; x; s/^/@/; tB;' Thai.tmp
复制代码 但是查不出出错原因来,谁能帮我看看吗?要求只用sed。公司用的cygwin环境,sed版本是3.02。
现在的结果已经测试成功 |
|