- 论坛徽章:
- 0
|
用stardict下了很多字典, 所以很想试试dictd.
据说dictd.conf是这种格式的:
database name {
data "/file/to/datafile"
index "/file/to/index"
}
而现在这些文件分别存放在各自的/usr/share/stardict/dic目录下.
一个个输入太麻烦了,于是想用强大的shell解决.
(俺不是高手,不能一步到位, 自个找乐吧)
- 1. 找到这些文件
- [yarco@China ~]$ cd /
- [yarco@China /]$ find /usr/share/stardict/dic/ -name "*.dz" > ~/1.txt
- [yarco@China /]$ cat ~/1.txt
- /usr/share/stardict/dic/stardict-dictd_www.dict.org_gazetteer-2.4.2/dictd_www.dict.org_gazetteer.dict.dz
- /usr/share/stardict/dic/stardict-longman-2.4.2/longman.dict.dz
- //...省略
- [yarco@China /]$ find /usr/share/stardict/dic/ -name "*.idx" > ~/2.txt
- [yarco@China /]$ cat ~/2.txt
- /usr/share/stardict/dic/stardict-dictd_www.dict.org_gazetteer-2.4.2/dictd_www.dict.org_gazetteer.idx
- /usr/share/stardict/dic/stardict-longman-2.4.2/longman.idx
- //...省略
- 2. 合并排序
- [yarco@China /]$ cd ~
- [yarco@China ~]$ cat 1.txt 2.txt > 3.txt && rm 1.txt 2.txt
- [yarco@China ~]$ sort 3.txt > 4.txt && rm 3.txt
- [yarco@China ~]$ cat 4.txt
- /usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz
- /usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx
- /usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz
- /usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx
- //...省略
- 3. 祭出awk
- [yarco@China ~]$ awk 'NR % 2 == 1 { print NR "\tdatabase { data \"" $0 "\"" }' 4.txt > 5.txt
- [yarco@China ~]$ cat 5.txt
- 1 database { data "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz"
- 3 database { data "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz"
- 5 database { data "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.dict.dz"
- //...不好意思,俺还不会怎么用if这种
- [yarco@China ~]$ awk 'NR % 2 == 0 { print NR "\t\tindex \"" $0 "\" }" }' 4.txt > 6.txt
- [yarco@China ~]$ cat 6.txt
- 2 index "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx" }
- 4 index "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx" }
- 6 index "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.idx" }
- //...省略
- 4. 合并排序
- [yarco@China ~]$ cat 5.txt 6.txt | sort -n > 7.txt && rm 4.txt 5.txt 6.txt
- [yarco@China ~]$ cat 7.txt
- 1 database { data "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz"
- 2 index "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx" }
- 3 database { data "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz"
- 4 index "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx" }
- 5 database { data "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.dict.dz"
- 6 index "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.idx" }
- //...哈哈哈, 快好了哦
- 5. 无耻的sed替换
- [yarco@China ~]$ sed 's/^..//g' 7.txt
- database { data "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.dict.dz"
- index "/usr/share/stardict/dic/stardict-cced-2.4.2/cced.idx" }
- database { data "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.dict.dz"
- index "/usr/share/stardict/dic/stardict-cdict-gb-2.4.2/cdict-gb.idx" }
- database { data "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.dict.dz"
- index "/usr/share/stardict/dic/stardict-cedict-gb-2.4.2/cedict-gb.idx" }
- //...偶实在不知道...
- //用sed 's/^\d+//g' 7.txt 要出错,sed 's/^[0-9]+//g' 7.txt也出错
- //就不知道怎么替换数字,于是很干脆...
- 最后,只能手动输入database name,
- 完工.
复制代码 |
评分
-
查看全部评分
|