历史上的今天 20分钟的成本
十二月 15

新合并了个dvbbs的论坛到旧的discuz论坛,原来论坛的管理员嫌discuz的smiles太平淡,搞了58个gif图片过来,说是要让我帮忙搞到现在论坛的smiles库里面去。

想到要把这58个图片在discuz的后台一个个加到smiles里面去,我就崩溃了,还是写个脚本来处理这个问题吧。

先把这58个gif发到了服务器上,然后临时建了个目录,把这58个图片拷贝到这个临时目录里面用来生成入库的sql脚本。想得很简单嘛,不就是用awk处理一下,应该可以很快搞定的:

  1. 先用awk生成这58个gif图片文件名的列表文件
    1. ls -lh /tmp/smilies |awk '{print $9}'>/tmp/temp
  2. 然后根据这个temp文件生成相应的sql脚本,想得很简单的,我用了以下的语句
    1. awk -F. '{print "(':" $1 "','" $1 "." $2 "')," }' /tmp/temp>/tmp/sql.sh

    结果/tmp/sql.sh里面生成了这么一串的东西

    1. (:  ,  .  ),
    2. (:  ,  .  ),
    3. (:  ,  .  ),
    4. (:  ,  .  ),
    5. (:  ,  .  ),
    6. ....................

    晕死了,看了半天,总算想到'是在shell用来作为关闭特殊字符的hard quote使用的,想了半天也想不起来在shell里面用什么字符可以关闭'的定义的,上google查了半天也搞不定,大怒之余,开始耍赖了,搞了以下的方法来搞定:

    1. 先用其他的字符来代替'
      1. awk -F. '{print "(A:" $1 "A,A" $1 "." $2 "A)," }' /tmp/temp>/tmp/sql.sh
    2. 然后在vi里面再用替换命令把所有的A字符改成'
      1. :s/A/'/g

      再手工修改一下内容,总算生成了要用的sql脚本
      大致就是以下的语句

      1. insert into `cdb_smilies` (`code`,`url`) values  (':SendsF01','SendsF01.gif'),
      2. (':SendsF02','SendsF02.gif'),
      3. (':SendsF03','SendsF03.gif'),
      4. (':SendsF04','SendsF04.gif'),
      5. (':SendsF05','SendsF05.gif'),
      6. (':SendsF06','SendsF06.GIF'),
      7. (':SendsF07','SendsF07.gif'),
      8. (':SendsF08','SendsF08.gif'),
      9. (':SendsF09','SendsF09.GIF'),
      10. (':SendsF10','SendsF10.gif'),
      11. (':SendsF11','SendsF11.gif'),
      12. (':SendsF12','SendsF12.gif'),
      13. (':SendsF13','SendsF13.gif'),
      14. (':SendsF14','SendsF14.gif'),
      15. (':SendsF15','SendsF15.gif'),
      16. (':SendsF16','SendsF16.gif'),
      17. (':SendsF17','SendsF17.gif'),
      18. (':SendsF18','SendsF18.gif'),
      19. (':SendsF19','SendsF19.gif'),
      20. (':SendsF20','SendsF20.gif'),
      21. (':SendsF21','SendsF21.gif'),
      22. (':SendsF22','SendsF22.gif'),
      23. (':SendsF23','SendsF23.gif'),
      24. (':SendsF24','SendsF24.gif'),
      25. (':SendsF25','SendsF25.gif'),
      26. (':SendsF26','SendsF26.gif'),
      27. (':SendsF27','SendsF27.gif'),
      28. (':SendsF28','SendsF28.gif'),
      29. (':SendsF29','SendsF29.gif'),
      30. (':SendsF30','SendsF30.gif'),
      31. (':SendsF31','SendsF31.gif'),
      32. (':SendsF32','SendsF32.gif'),
      33. (':gua1','gua1.GIF'),
      34. (':gua10','gua10.gif'),
      35. (':gua11','gua11.GIF'),
      36. (':gua12','gua12.gif'),
      37. (':gua13','gua13.GIF'),
      38. (':gua14','gua14.GIF'),
      39. (':gua15','gua15.gif'),
      40. (':gua16','gua16.gif'),
      41. (':gua17','gua17.GIF'),
      42. (':gua18','gua18.GIF'),
      43. (':gua19','gua19.gif'),
      44. (':gua2','gua2.GIF'),
      45. (':gua20','gua20.GIF'),
      46. (':gua21','gua21.gif'),
      47. (':gua22','gua22.gif'),
      48. (':gua23','gua23.gif'),
      49. (':gua24','gua24.gif'),
      50. (':gua25','gua25.gif'),
      51. (':gua26','gua26.gif'),
      52. (':gua3','gua3.gif'),
      53. (':gua4','gua4.gif'),
      54. (':gua5','gua5.GIF'),
      55. (':gua6','gua6.gif'),
      56. (':gua7','gua7.GIF'),
      57. (':gua8','gua8.gif'),
      58. (':gua9','gua9.gif');
  3. 在bbs的库导入这个sql语句,搞定

这时候看了一下时间,用了半个小时,真的是不知道这次的懒惰到底是赚到了还是赔本了。
是为记之!

Leave a Reply