LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 958|回复: 5

[已解决]sed问题,高手进

[复制链接]
发表于 2007-11-22 10:04:20 | 显示全部楼层 |阅读模式
现在有如下类似的数据(开始的示例有写情况没有选进来):
  1. 281|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  2. 282|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 A0 00
  3. 283|  0:00:05| 271743|TD_SC| 0xFF|FF 20 20 20 20 20 20 61 64 61 6D 7A 79 67 20
  4. 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
  5. 61 6E 65 6C 20 66 6F 72 20 57 61 70 00 34 00 00 00
  6. 284|  0:00:05| 271743|TD_SC| 0xFF|FF 23 23 23 20 61 64 61 6D 7A 79 67 20 73 63
  7. 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
  8. 64 72 65 73 73 3D 34 35 62 36 30 64 00 34 00 00 00
  9. 285|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 30 00 00 00 00 00
  10. 286|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 31 00 42 4D 36 54 00 00
  11. 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
  12. 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
  13. 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
  14. 3A 00 82 64 31 00 63 56 3A 00 2A 25 1B 00 15 15
  15. 287|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 32 00 80 00 00 00
  16. 288|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 33 00 A0 00 00 00
  17. 289|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 31 00 80 00
  18. 290|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 32 00 A0 00
  19. 291|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 33 00 80 00
  20. 292|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 34 00 A0 00
  21. 293|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 35 00 80 00
  22. 294|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 36 00 A0 00
  23. 295|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 37 00 00 00 00 00
  24. 296|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 36 04 00 00
  25. 297|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 80 00
  26. 298|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 31 31 00 08 00 00 00
  27. 299|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 39 00 82 10 41 08 41
  28. 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
  29. 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
  30. 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
  31. 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
  32. 300|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 30 00 01
  33. 301|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 47
  34. 302|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 48
  35. 303|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 30 00 00
  36. 304|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 31 00 00 00 00 00 00 00
  37. 305|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
  38. 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
  39. 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
  40. 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. 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
  42. 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
  43. 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
  44. 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
  45. 41 08 41 08 41 08 41 08 41 08 41 08
  46. 228|  0:00:04| 271475|TD_SC| 0xFF|FF 23 23 23 20 61 64 61 6D 7A 79 67 20 73 63
  47. 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
  48. 64 72 65 73 73 3D 34 35 62 36 30 64 00 34 00 00 00
  49. 229|  0:00:04| 271475|MMI  >OSIC |L1C_INIT_TAT_REQ                           |
  50. 10 00 32 00 AB 00 00 00 9C AF 75 30 18 52 61 00
  51. Process state: 0x615218 = UNK
  52. 230|  0:00:04| 271475|MMI  >HLIGH|UNKNOWN 9C20
  53. 18 00 32 00 9C 00 20 9C 02 01 04 00 3C 81 09 30 B1 1E 2E 00 18 52 61 00
  54. Process state: 0x615218 = UNK
  55. 231|  0:00:04| 271475|MMI  >HLIGH|UNKNOWN 9C00
  56. 14 00 32 00 9C 00 00 9C E0 35 38 00 0B 01 5F 31 18 52 61 00
  57. Process state: 0x615218 = UNK
  58. 232|  0:00:04| 271475|TD_SC| 0xFF|FF 32 31 32 31 32 31 32 31 30 00 02
复制代码

目的是把行首以数字开始接着一个“|”的行之后,又不是行首以数字开始接着一个“|”的行之间的内容追加到刚刚匹配的行后。
比如如下数据:
  1. 305|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 41 08 41 08 41 08 41 08 41 08 41 08
  10. 306|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
复制代码
就是要把“305|”行之后的数据行(“306|”之前的数据行)按照一个字节然后一个空格的规则追加到"305|"行之后。

我写好了一个:
  1. 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。

现在的结果已经测试成功
发表于 2007-11-22 16:26:07 | 显示全部楼层
  1. sed -e :a -e '/^[0-9]\+|/{N;s/\n\([0-9]\+\s\+\)/ \1/g;ta}'
复制代码

这个可以
  1. bb@python:~/test$ cat bb
  2. 305|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 41 08 41 08 41 08 41 08 41 08 41 08
  11. 306|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  12. bb@python:~/test$ sed -e :a -e '/^[0-9]\+|/{N;s/\n\([0-9]\+\s\+\)/ \1/g;ta}' bb
  13. 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
  14. 306|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  15. bb@python:~/test$
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-11-22 17:17:42 | 显示全部楼层
完整测试有点问题,修改下解决了。
忘记十六进制有A-F
  1. sed -e :a -e '/^[0-9A-F]\+|/N;s/\n\([0-9A-F]\+\s\+\)/ \1/;ta' -e 'P;D'
复制代码

  1. bb@python:~/test$ cat bb
  2. 281|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  3. 282|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 A0 00
  4. 283|  0:00:05| 271743|TD_SC| 0xFF|FF 20 20 20 20 20 20 61 64 61 6D 7A 79 67 20
  5. 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
  6. 61 6E 65 6C 20 66 6F 72 20 57 61 70 00 34 00 00 00
  7. 284|  0:00:05| 271743|TD_SC| 0xFF|FF 23 23 23 20 61 64 61 6D 7A 79 67 20 73 63
  8. 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
  9. 64 72 65 73 73 3D 34 35 62 36 30 64 00 34 00 00 00
  10. 285|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 30 00 00 00 00 00
  11. 286|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 31 00 42 4D 36 54 00 00
  12. 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
  13. 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
  14. 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
  15. 3A 00 82 64 31 00 63 56 3A 00 2A 25 1B 00 15 15
  16. 287|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 32 00 80 00 00 00
  17. 288|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 33 00 A0 00 00 00
  18. 289|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 31 00 80 00
  19. 290|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 32 00 A0 00
  20. 291|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 33 00 80 00
  21. 292|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 34 00 A0 00
  22. 293|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 35 00 80 00
  23. 294|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 36 00 A0 00
  24. 295|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 37 00 00 00 00 00
  25. 296|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 36 04 00 00
  26. 297|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 80 00
  27. 298|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 31 31 00 08 00 00 00
  28. 299|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 39 00 82 10 41 08 41
  29. 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
  30. 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
  31. 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
  32. 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
  33. 300|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 30 00 01
  34. 301|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 47
  35. 302|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 48
  36. 303|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 30 00 00
  37. 304|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 31 00 00 00 00 00 00 00
  38. 305|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
  39. 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
  40. 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. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 41 08 41 08 41 08 41 08 41 08 41 08
  47. bb@python:~/test$ sed -e :a -e '/^[0-9A-F]\+|/N;s/\n\([0-9A-F]\+\s\+\)/ \1/;ta' -e 'P;D' bb
  48. 281|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  49. 282|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 A0 00
  50. 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
  51. 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
  52. 285|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 30 00 00 00 00 00
  53. 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
  54. 287|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 32 00 80 00 00 00
  55. 288|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 33 00 A0 00 00 00
  56. 289|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 31 00 80 00
  57. 290|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 32 00 A0 00
  58. 291|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 33 00 80 00
  59. 292|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 34 00 A0 00
  60. 293|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 35 00 80 00
  61. 294|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 36 00 A0 00
  62. 295|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 37 00 00 00 00 00
  63. 296|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 36 04 00 00
  64. 297|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 80 00
  65. 298|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 31 31 00 08 00 00 00
  66. 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
  67. 300|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 30 00 01
  68. 301|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 47
  69. 302|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 48
  70. 303|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 30 00 00
  71. 304|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 31 00 00 00 00 00 00 00
  72. 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
  73. bb@python:~/test$
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-11-22 17:38:06 | 显示全部楼层
这下没问题了
回复 支持 反对

使用道具 举报

发表于 2007-11-22 19:09:18 | 显示全部楼层
  1. sed -n 'H;/^[^|]*$/{g;s/\(^.*|.*\)\n\([^|]*$\)/\1 \2/;h};p' file  | sed -n '${H;g;p};/^.\+$/{H;d};/^$/h'
复制代码
Not perfect but should work.
回复 支持 反对

使用道具 举报

发表于 2007-11-22 19:12:14 | 显示全部楼层
Post by pythonlong;1786232
完整测试有点问题,修改下解决了。
忘记十六进制有A-F

  1. sed -e :a -e '/^[0-9A-F]\+|/N;s/\n\([0-9A-F]\+\s\+\)/ \1/;ta' -e 'P;D'
复制代码



  1. bb@python:~/test$ cat bb
  2. 281|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  3. 282|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 A0 00
  4. 283|  0:00:05| 271743|TD_SC| 0xFF|FF 20 20 20 20 20 20 61 64 61 6D 7A 79 67 20
  5. 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
  6. 61 6E 65 6C 20 66 6F 72 20 57 61 70 00 34 00 00 00
  7. 284|  0:00:05| 271743|TD_SC| 0xFF|FF 23 23 23 20 61 64 61 6D 7A 79 67 20 73 63
  8. 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
  9. 64 72 65 73 73 3D 34 35 62 36 30 64 00 34 00 00 00
  10. 285|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 30 00 00 00 00 00
  11. 286|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 31 00 42 4D 36 54 00 00
  12. 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
  13. 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
  14. 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
  15. 3A 00 82 64 31 00 63 56 3A 00 2A 25 1B 00 15 15
  16. 287|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 32 00 80 00 00 00
  17. 288|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 33 00 A0 00 00 00
  18. 289|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 31 00 80 00
  19. 290|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 32 00 A0 00
  20. 291|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 33 00 80 00
  21. 292|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 34 00 A0 00
  22. 293|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 35 00 80 00
  23. 294|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 36 00 A0 00
  24. 295|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 37 00 00 00 00 00
  25. 296|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 36 04 00 00
  26. 297|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 80 00
  27. 298|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 31 31 00 08 00 00 00
  28. 299|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 39 00 82 10 41 08 41
  29. 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
  30. 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
  31. 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
  32. 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08 41 08
  33. 300|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 30 00 01
  34. 301|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 47
  35. 302|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 48
  36. 303|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 30 00 00
  37. 304|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 31 00 00 00 00 00 00 00
  38. 305|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 82 10 41 08 41 08
  39. 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
  40. 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. 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
  42. 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
  43. 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
  44. 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
  45. 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
  46. 41 08 41 08 41 08 41 08 41 08 41 08
  47. bb@python:~/test$ sed -e :a -e '/^[0-9A-F]\+|/N;s/\n\([0-9A-F]\+\s\+\)/ \1/;ta' -e 'P;D' bb
  48. 281|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 80 00
  49. 282|  0:00:05| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 31 00 A0 00
  50. 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
  51. 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
  52. 285|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 30 00 00 00 00 00
  53. 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
  54. 287|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 32 00 80 00 00 00
  55. 288|  0:00:06| 271743|TD_SC| 0xFF|FF 32 5F 32 32 31 5F 33 00 A0 00 00 00
  56. 289|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 31 00 80 00
  57. 290|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 32 00 A0 00
  58. 291|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 33 00 80 00
  59. 292|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 34 00 A0 00
  60. 293|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 35 00 80 00
  61. 294|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 36 00 A0 00
  62. 295|  0:00:06| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 37 00 00 00 00 00
  63. 296|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 36 04 00 00
  64. 297|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 30 38 00 80 00
  65. 298|  0:00:07| 271743|TD_SC| 0xFF|FF 30 31 30 33 30 30 31 31 00 08 00 00 00
  66. 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
  67. 300|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 32 32 32 5F 30 00 01
  68. 301|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 47
  69. 302|  0:00:07| 271743|TD_SC| 0xFF|FF 32 5F 31 37 39 00 48
  70. 303|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 30 00 00
  71. 304|  0:00:07| 271743|TD_SC| 0xFF|FF 32 2D 32 33 32 2D 31 00 00 00 00 00 00 00
  72. 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
  73. bb@python:~/test$

复制代码


very nice! Learned!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表