免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1303 | 回复: 0
打印 上一主题 下一主题

第一次shell接触 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-20 22:30 |只看该作者 |倒序浏览
用stardict下了很多字典,  所以很想试试dictd.
据说dictd.conf是这种格式的:
database name {
  data "/file/to/datafile"
  index "/file/to/index"
}

而现在这些文件分别存放在各自的/usr/share/stardict/dic目录下.
一个个输入太麻烦了,于是想用强大的shell解决.
(俺不是高手,不能一步到位, 自个找乐吧)

  1. 1. 找到这些文件
  2. [yarco@China ~]$ cd /
  3. [yarco@China /]$ find /usr/share/stardict/dic/ -name "*.dz" > ~/1.txt
  4. [yarco@China /]$ cat ~/1.txt
  5. /usr/share/stardict/dic/stardict-dictd_www.dict.org_gazetteer-2.4.2/dictd_www.dict.org_gazetteer.dict.dz
  6. /usr/share/stardict/dic/stardict-longman-2.4.2/longman.dict.dz
  7. //...省略
  8. [yarco@China /]$ find /usr/share/stardict/dic/ -name "*.idx" > ~/2.txt
  9. [yarco@China /]$ cat ~/2.txt
  10. /usr/share/stardict/dic/stardict-dictd_www.dict.org_gazetteer-2.4.2/dictd_www.dict.org_gazetteer.idx
  11. /usr/share/stardict/dic/stardict-longman-2.4.2/longman.idx
  12. //...省略

  13. 2. 合并排序
  14. [yarco@China /]$ cd ~
  15. [yarco@China ~]$ cat 1.txt 2.txt > 3.txt && rm 1.txt 2.txt
  16. [yarco@China ~]$ sort 3.txt > 4.txt && rm 3.txt
  17. [yarco@China ~]$ cat 4.txt
  18. /usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz
  19. /usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx
  20. /usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz
  21. /usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx
  22. //...省略

  23. 3. 祭出awk
  24. [yarco@China ~]$ awk 'NR % 2 == 1 { print NR "\tdatabase { data \"" $0 "\"" }' 4.txt > 5.txt
  25. [yarco@China ~]$ cat 5.txt
  26. 1       database { data "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz"
  27. 3       database { data "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz"
  28. 5       database { data "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.dict.dz"
  29. //...不好意思,俺还不会怎么用if这种
  30. [yarco@China ~]$ awk 'NR % 2 == 0 { print NR "\t\tindex \"" $0 "\" }" }' 4.txt > 6.txt
  31. [yarco@China ~]$ cat 6.txt
  32. 2               index "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx" }
  33. 4               index "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx" }
  34. 6               index "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.idx" }
  35. //...省略

  36. 4. 合并排序
  37. [yarco@China ~]$ cat 5.txt 6.txt | sort -n > 7.txt && rm 4.txt 5.txt 6.txt
  38. [yarco@China ~]$ cat 7.txt
  39. 1       database { data "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz"
  40. 2               index "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx" }
  41. 3       database { data "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz"
  42. 4               index "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx" }
  43. 5       database { data "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.dict.dz"
  44. 6               index "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.idx" }
  45. //...哈哈哈, 快好了哦

  46. 5. 无耻的sed替换
  47. [yarco@China ~]$ sed 's/^..//g' 7.txt
  48. database { data "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz"
  49.         index "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx" }
  50. database { data "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz"
  51.         index "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx" }
  52. database { data "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.dict.dz"
  53.         index "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.idx" }
  54. //...偶实在不知道...
  55. //用sed 's/^\d+//g' 7.txt 要出错,sed 's/^[0-9]+//g' 7.txt也出错
  56. //就不知道怎么替换数字,于是很干脆...

  57. 最后,只能手动输入database name,
  58. 完工.
复制代码

评分

参与人数 1可用积分 +1 收起 理由
waker + 1

查看全部评分

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP