Skip to content

Instantly share code, notes, and snippets.

@lo48576
Last active July 8, 2018 05:45
Show Gist options
  • Select an option

  • Save lo48576/4104005 to your computer and use it in GitHub Desktop.

Select an option

Save lo48576/4104005 to your computer and use it in GitHub Desktop.
Utility to make skk dictionary easily.
skkใซใฆใ€็•ฅ็งฐใ‚„่ค‡ๆ•ฐใฎ่ชญใฟ/่กจ่จ˜ใŒใ‚ใ‚‹่จ€่‘‰ใ‚’็ฐกๅ˜ใซๅค‰ๆ›ใงใใ‚‹ใ‚ˆใ†ใช่พžๆ›ธใ‚’ไฝœๆˆใ™ใ‚‹ใŸใ‚ใฎใƒฆใƒผใƒ†ใ‚ฃใƒชใƒ†ใ‚ฃใ€‚
skk่พžๆ›ธๅฝขๅผใ‹cdbๅฝขๅผ(ใ‚ใ‚‹ใ„ใฏไธกๆ–น)ใงๅ‡บๅŠ›ใงใใพใ™ใ€‚
ใ€Œ[ใ€ใ‚„ใ€Œ/ใ€ใชใฉใ€skk่พžๆ›ธใซใฆ็‰นๆฎŠใชๆ„ๅ‘ณใ‚’ใ‚‚ใคๆ–‡ๅญ—ใ‚’ๅซใ‚€ๆ–‡ๅญ—ๅˆ—ใซใฏๅฏพๅฟœใ—ใฆใ„ใชใ„ใฎใงๆ‚ชใ—ใ‹ใ‚‰ใšใ€‚
ๅค–้ƒจใงawkใ€nkfใ€teeใ€skkdic-p2cdb(multiskkservใจไธ€็ท’ใซ้…ๅธƒใ•ใ‚Œใฆใ„ใ‚‹)ใŒๅฟ…่ฆใงใ™ใ€‚
ใ‚‚ใ—skkdic-p2cdbใŒ็„กใใฆใ‚‚ใ€skk่พžๆ›ธๅฝขๅผใงๅ‡บๅŠ›ใงใใ‚‹ใฎใงmultiskkservไปฅๅค–ใงใ‚‚ๅˆฉ็”จใงใใพใ™ใ€‚
ใชใŠใ€skk่พžๆ›ธๅฝขๅผใงใฏEUC-JPใงๅ‡บๅŠ›ใ•ใ‚Œใ€ใ‚ฝใƒผใƒˆใ‚„้‡่ค‡ใฎๆถˆๅŽปใ€ไธๆญฃใชใ‚จใƒณใƒˆใƒชใฎๅ‰Š้™ค็ญ‰ใฏไธ€ๅˆ‡ใชใ„ใฎใงใ€
ๅฟ…่ฆใชใ‚‰ๅˆฅใฎใƒ„ใƒผใƒซใงๅŠ ๅทฅใ—ใฆใใ ใ•ใ„ใ€‚
ๅ…ฅๅŠ›ใƒ•ใ‚กใ‚คใƒซใซใคใ„ใฆ:
ใ€Œ|ใ€ใงๅค‰ๆ›ๅ…ˆใจๅค‰ๆ›ๅ…ƒใ‚’ๅŒบๅˆ‡ใ‚Šใพใ™ใ€‚
ๅค‰ๆ›ๅ…ˆใจๅค‰ๆ›ๅ…ƒใฎใƒชใ‚นใƒˆใฏใ€ๅ„้ …็›ฎใ‚’ใ€Œ/ใ€ใงๅŒบๅˆ‡ใ‚Šใพใ™ใ€‚
ๅŒบๅˆ‡ใ‚Šๆ–‡ๅญ—ใฎๅ‰ๅพŒใซ็ฉบ็™ฝใฏๅฟ…่ฆใ‚ใ‚Šใพใ›ใ‚“(ใ‚ใฃใŸๅ ดๅˆใ‚‚็„ก่ฆ–ใ•ใ‚Œใพใ›ใ‚“)ใ€‚
ใŸใจใˆใฐ
ไพ‹1/ไพ‹ใซ/ไพ‹ใ‚ตใƒณ/example 4|ใ‚Œใ„ใ„ใก/ใ‚Œใ„ใซ/ใ‚Œใ„ใ•ใ‚“/ใ‚Œใ„ใ‚ˆใ‚“/ex5
ใจใ„ใ†่กŒใŒใ‚ใ‚Œใฐใ€ๅค‰ๆ›ๅพŒใฎ่พžๆ›ธใ‚’ไฝฟใ†ใจ
ใ€Œใ‚Œใ„ใ„ใกใ€ใ€ใ€Œใ‚Œใ„ใซใ€ใ€ใ€Œใ‚Œใ„ใ•ใ‚“ใ€ใ€ใ€Œใ‚Œใ„ใ‚ˆใ‚“ใ€ใ€ใ€Œex5ใ€ใฎใฉใ‚Œใ‚’ๅค‰ๆ›ใ—ใฆใ‚‚ใ€ๅ€™่ฃœใซ
ใ€Œไพ‹1ใ€ใ€ใ€Œไพ‹ใซใ€ใ€ใ€Œไพ‹ใ‚ตใƒณใ€ใ€ใ€Œexample 4ใ€ใฎๅ…จใฆใŒ็พใ‚Œใพใ™ใ€‚
ไธ‹ใฎไพ‹ใฎใ‚ˆใ†ใชใ€่ค‡ๆ•ฐใฎ็•ฅ็งฐใ‚„่กจ่จ˜ใŒใ‚ใ‚‹ใ‚ˆใ†ใช่จ€่‘‰ใฎๅค‰ๆ›ใŒใจใฆใ‚‚ๆฅฝใซใชใ‚‹ใงใ—ใ‚‡ใ†ใ€‚
sample commandline:
mskk2cdb.sh -s my_jisho.skkdic -c my_jisho.cdb -d "sudo /etc/init.d/multiskkserv restart"
find mywords/ -type f '!' -name '.*' -execdir cat '{}' + | mskk2cdb.sh -c my_jisho2.cdb
sample input file:
; comment
ใƒชใƒˆใƒซใƒใ‚นใ‚ฟใƒผใ‚บ๏ผ/Little Busters!|ใ‚Šใจใฐใ™/ใ‚Šใจใ‚‹ใฐใ™ใŸใƒผใš
; This will be converted to:
; ใƒชใƒˆใƒซใƒใ‚นใ‚ฟใƒผใ‚บ๏ผ /ใ‚Šใจใฐใ™/ใ‚Šใจใ‚‹ใฐใ™ใŸใƒผใš/
; Little Busters! /ใ‚Šใจใฐใ™/ใ‚Šใจใ‚‹ใฐใ™ใŸใƒผใš/
; You can also write only one item.
ใ†ใฟใญใ“ใฎใชใ้ ƒใซ|ใ†ใฟใญใ“
; This will be converted to:
; ใ†ใฟใญใ“ใฎใชใ้ ƒใซ /ใ†ใฟใญใ“/
; dictionary for kancolle
; mkss2cdbใงๅค‰ๆ›ใ™ใ‚‹ใจskk็”จใซไฝฟใˆใพใ™ใ€‚
; ใ“ใ‚Œไฝฟใ†ๅ‰ใซSKK-JISYO.Lไฝฟใˆใฐๅ…ฅๆธ ใจใ‹ๅทฅๅป ใจใ‹้‡ๅทกใจใ‹ๅฝฉ้›ฒใจใ‹็Ÿข็Ÿงใจใ‹็ตๆง‹ใ‚ซใƒใƒผใงใใ‚‹ใฎใง
; ใจใ‚Šใ‚ใˆใšใใ“ใ‹ใ‚‰่ฉฆใ™ในใใ€‚
; ใกใชใฟใซ้šผ้ทน(ใ˜ใ‚…ใ‚“ใ‚ˆใ†)ใจใ‹ใฏSKK-JISYO.Lใงใ‚‚็„ก็†ใ€‚
; ่‰ฆ่ˆน (ไธ€่ฆง้ †)
;; No.001-010
้•ท้–€|ใชใŒใจ/ใชใŒใ‚‚ใ‚“
้™ธๅฅฅ|ใ‚€ใค
ไผŠๅ‹ข|ใ„ใ›
ๆ—ฅๅ‘|ใฒใ‚…ใ†ใŒ
้›ช้ขจ|ใ‚†ใใ‹ใœ
่ตคๅŸŽ|ใ‚ใ‹ใŽ
ๅŠ ่ณ€|ใ‹ใŒ
่’ผ้พ|ใใ†ใ‚Šใ‚…ใ†
้ฃ›้พ|ใฒใ‚Šใ‚…ใ†
ๅณถ้ขจ|ใ—ใพใ‹ใœ
;; No.011-020
ๅน้›ช|ใตใถใ
็™ฝ้›ช|ใ—ใ‚‰ใ‚†ใ
ๅˆ้›ช|ใฏใคใ‚†ใ
ๆทฑ้›ช|ใฟใ‚†ใ
ๅข้›ฒ|ใ‚€ใ‚‰ใใ‚‚
็ฃฏๆณข|ใ„ใใชใฟ
็ถพๆณข|ใ‚ใ‚„ใชใฟ
ๆ•ทๆณข|ใ—ใใชใฟ
ๅคงไบ•|ใŠใŠใ„
ๅŒ—ไธŠ|ใใŸใ‹ใฟ
;; No.021-030
้‡‘ๅ‰›|ใ“ใ‚“ใ”ใ†
ๆฏ”ๅก|ใฒใˆใ„
ๆฆ›ๅ|ใฏใ‚‹ใช
้œงๅณถ|ใใ‚Šใ—ใพ
้ณณ็ฟ”|ใปใ†ใ—ใ‚‡ใ†
ๆ‰ถๆก‘|ใตใใ†
ๅฑฑๅŸŽ|ใ‚„ใพใ—ใ‚
ๅคฉ้พ|ใฆใ‚“ใ‚Šใ‚…ใ†
้พ็”ฐ|ใŸใคใŸ
้พ้ฉค|ใ‚Šใ‚…ใ†ใ˜ใ‚‡ใ†
;; No.031-040
็ฆๆœˆ|ใ‚€ใคใ
ๅฆ‚ๆœˆ|ใใ•ใ‚‰ใŽ
็šๆœˆ|ใ•ใคใ
ๆ–‡ๆœˆ|ใตใฟใฅใ
้•ทๆœˆ|ใชใŒใคใ
่Šๆœˆ|ใใใฅใ
ไธ‰ๆ—ฅๆœˆ|ใฟใ‹ใฅใ
ๆœ›ๆœˆ|ใ‚‚ใกใฅใ
็ƒ็ฃจ|ใใพ
ๅคšๆ‘ฉ|ใŸใพ
;; No.041-050
ๆœจๆ›พ|ใใ
้•ท่‰ฏ|ใชใŒใ‚‰
ไบ”ๅ้ˆด|ใ„ใ™ใš
ๅๅ–|ใชใจใ‚Š
็”ฑ่‰ฏ|ใ‚†ใ‚‰
ๅทๅ†…|ใ›ใ‚“ใ ใ„
็ฅž้€š|ใ˜ใ‚“ใคใ†
้‚ฃ็‚|ใชใ‹
ๅƒๆญณ|ใกใจใ›
ๅƒไปฃ็”ฐ|ใกใ‚ˆใ 
;; No.051-060
ๆœ€ไธŠ|ใ‚‚ใŒใฟ
ๅค้ทน|ใตใ‚‹ใŸใ‹
ๅŠ ๅค|ใ‹ใ“
้’่‘‰|ใ‚ใŠใฐ
ๅฆ™้ซ˜|ใฟใ‚‡ใ†ใ“ใ†
้‚ฃๆ™บ|ใชใก
่ถณๆŸ„|ใ‚ใ—ใŒใ‚‰
็พฝ้ป’|ใฏใใ‚
้ซ˜้›„|ใŸใ‹ใŠ
ๆ„›ๅฎ•|ใ‚ใŸใ”
;; No.061-070
ๆ‘ฉ่€ถ|ใพใ‚„
้ณฅๆตท|ใกใ‚‡ใ†ใ‹ใ„
ๅˆฉๆ น|ใจใญ
็ญ‘ๆ‘ฉ|ใกใใพ
้ฃ›้ทน|ใฒใ‚ˆใ†
้šผ้ทน|ใ˜ใ‚…ใ‚“ใ‚ˆใ†
ๆœง|ใŠใผใ‚
ๆ›™|ใ‚ใ‘ใผใฎ
ๆผฃ|ใ•ใ–ใชใฟ
ๆฝฎ|ใ†ใ—ใŠ
;; No.071-080
ๆš|ใ‚ใ‹ใคใ
้Ÿฟ|ใฒใณใ
้›ท|ใ„ใ‹ใšใก
้›ป|ใ„ใชใฅใพ
ๅˆๆ˜ฅ|ใฏใคใฏใ‚‹
ๅญๆ—ฅ|ใญใฎใฒ
่‹ฅ่‘‰|ใ‚ใ‹ใฐ
ๅˆ้œœ|ใฏใคใ—ใ‚‚
็™ฝ้œฒ|ใ—ใ‚‰ใคใ‚†
ๆ™‚้›จ|ใ—ใใ‚Œ
;; No.081-090
ๆ‘้›จ|ใ‚€ใ‚‰ใ•ใ‚
ๅค•็ซ‹|ใ‚†ใ†ใ ใก
ไบ”ๆœˆ้›จ|ใ•ใฟใ ใ‚Œ
ๆถผ้ขจ|ใ™ใšใ‹ใœ
ๆœๆฝฎ|ใ‚ใ•ใ—ใŠ
ๅคงๆฝฎ|ใŠใŠใ—ใŠ
ๆบ€ๆฝฎ|ใฟใกใ—ใŠ
่’ๆฝฎ|ใ‚ใ‚‰ใ—ใŠ
้œฐ|ใ‚ใ‚‰ใ‚Œ
้œž|ใ‹ใ™ใฟ
;; No.091-100
้™ฝ็‚Ž|ใ‹ใ’ใ‚ใ†
ไธ็Ÿฅ็ซ|ใ—ใ‚‰ใฌใ„
้ป’ๆฝฎ|ใใ‚ใ—ใŠ
็ฅฅ้ณณ|ใ—ใ‚‡ใ†ใปใ†
;; No.101-110
็ฟ”้ถด|ใ—ใ‚‡ใ†ใ‹ใ
็‘ž้ถด|ใšใ„ใ‹ใ
้ฌผๆ€’|ใใฌ
้˜ฟๆญฆ้šˆ|ใ‚ใถใใพ
;; No.111-120
ๅค•ๅผต|ใ‚†ใ†ใฐใ‚Š
็‘ž้ณณ|ใšใ„ใปใ†
ไธ‰้šˆ|ใฟใใพ
ๅˆ้ขจ|ใฏใคใ‹ใœ
่ˆž้ขจ|ใพใ„ใ‹ใœ
่กฃ็ฌ |ใใฌใŒใ•
;; No.121-130
ไผŠ19|ใ„19/ใ„ใ
้ˆด่ฐท|ใ™ใšใ‚„
็†Š้‡Ž|ใใพใฎ
ไผŠ168|ใ„168/ใ„ใ‚€ใ‚„
ไผŠ58|ใ„58/ใ”ใƒผใ‚„
ไผŠ8|ใ„8/ใ„ใฏใก/ใฏใก
;; No.131-140
ๅคงๅ’Œ|ใ‚„ใพใจ
็ง‹้›ฒ|ใ‚ใใใ‚‚
ๅค•้›ฒ|ใ‚†ใ†ใใ‚‚
ๅทป้›ฒ|ใพใใใ‚‚
้•ทๆณข|ใชใŒใชใฟ
้˜ฟ่ณ€้‡Ž|ใ‚ใŒใฎ
่ƒฝไปฃ|ใฎใ—ใ‚
็Ÿข็Ÿง|ใ‚„ใฏใŽ
้…’ๅŒ‚|ใ•ใ‹ใ‚
;; No.141-150
ๆญฆ่”ต|ใ‚€ใ•ใ—
ะ’ะตั€ะฝั‹ะน|ใ†ใ‚›ใ‡ใƒผใ‚‹ใฌใ„
;; No.151-160
ๅคง้ณณ|ใŸใ„ใปใ†
ไผŠ401|ใ„401/ใ—ใŠใ„
;; No.161-170
ใ‚ใใคไธธ|ใ‚ใใคใพใ‚‹
; ใ€Œใพใ‚‹ใ‚†ใ€็„ก็†ใ€‚Unicodeใฎๅˆๆˆใจใ‹ใงใงใใ‚‹ใฎใ‹ใ‚‚ใ ใ‘ใฉใ€skk-uimใ˜ใ‚ƒ็„ก็†ใ€‚euc-jpใ ใ‹ใ‚‰ใ€‚
; ็”ณใ—่จณ็จ‹ๅบฆใซ็‰‡ไปฎๅใƒใƒผใ‚ธใƒงใƒณๅ…ฅใ‚Œใจใ(ใ“ใ‚Œใ‚‚ไฝฟใˆใ‚‹ใ‹ใ‚ใ‹ใ‚‰ใชใ„ใŒ)
; ่ฟฝ่จ˜: ใ”ใ‚ใ‚“็„ก็†ใ ใฃใŸใ€‚uim-skkใ€Unicodeๅฏพๅฟœใ—ใฆใใ‚Œใชใ„ใ‹ใชใƒผ
ใ‹ด|ใพใ‚‹ใ‚†
ๅผฅ็”Ÿ|ใ‚„ใ‚ˆใ„
ๅฏๆœˆ|ใ†ใฅใ
็ฃฏ้ขจ|ใ„ใใ‹ใœ
ๆตฆ้ขจ|ใ†ใ‚‰ใ‹ใœ
่ฐท้ขจ|ใŸใซใ‹ใœ
ๆตœ้ขจ|ใฏใพใ‹ใœ
;; No.171-180
Bismarck/ใƒ“ใ‚นใƒžใƒซใ‚ฏ|ใณใ™ใพใ‚‹ใ/bismarck
ใƒ“ใ‚นใƒžใƒซใ‚ฏ|Bismarck
Z1 Leberecht Maass/Leberecht Maass/ใƒฌใƒผใƒ™ใƒฌใƒ’ใƒˆใƒปใƒžใƒผใ‚น|ใ‚Œใƒผในใ‚Œใฒใจใพใƒผใ™/Z1
Z1|ใ‚Œใƒผในใ‚Œใฒใจใพใƒผใ™
Z3 Max Schultz/Max Schultz/ใƒžใƒƒใ‚ฏใ‚นใƒปใ‚ทใƒฅใƒซใƒ„|ใพใฃใใ™ใ—ใ‚…ใ‚‹ใค/Z3
Z3|ใพใฃใใ™ใ—ใ‚…ใ‚‹ใค
;; No.181-190
ๅคฉๆดฅ้ขจ|ใ‚ใพใคใ‹ใœ
ๆ˜Ž็Ÿณ|ใ‚ใ‹ใ—
ๅคงๆท€|ใŠใŠใ‚ˆใฉ
ๅคง้ฏจ|ใŸใ„ใ’ใ„
้พ้ณณ|ใ‚Šใ‚…ใ†ใปใ†
ๆ™‚ๆดฅ้ขจ|ใจใใคใ‹ใœ
;; No.191-200
;; No.201-210
้›ฒ้พ|ใ†ใ‚“ใ‚Šใ‚…ใ†
ๆ˜ฅ้›จ|ใฏใ‚‹ใ•ใ‚
ๆ—ฉ้œœ|ใฏใ‚„ใ—ใ‚‚
ๆธ…้œœ|ใใ‚ˆใ—ใ‚‚
;; NPC
้–“ๅฎฎ|ใพใฟใ‚„
; ่‰ฆ็จฎ
่ปฝๅทกๆด‹่‰ฆ/่ปฝๅทก|ใ‘ใ„ใ˜ใ‚…ใ‚“ใ‚ˆใ†ใ‹ใ‚“/ใ‘ใ„ใ˜ใ‚…ใ‚“
้‡ๅทกๆด‹่‰ฆ/้‡ๅทก|ใ˜ใ‚…ใ†ใ˜ใ‚…ใ‚“ใ‚ˆใ†ใ‹ใ‚“/ใ˜ใ‚…ใ†ใ˜ใ‚…ใ‚“
่ˆช็ฉบๆˆฆ่‰ฆ/่ˆชๆˆฆ|ใ“ใ†ใใ†ใ›ใ‚“ใ‹ใ‚“/ใ“ใ†ใ›ใ‚“
่ˆชๅทก/่ˆช็ฉบๅทกๆด‹่‰ฆ|ใ“ใ†ใใ†ใ˜ใ‚…ใ‚“ใ‚ˆใ†ใ‹ใ‚“|ใ“ใ†ใ˜ใ‚…ใ‚“
้‡้›ท่ฃ…ๅทกๆด‹่‰ฆ/้›ทๅทก/้‡้›ท่ฃ…่‰ฆ|ใ˜ใ‚…ใ†ใ‚‰ใ„ใใ†ใ˜ใ‚…ใ‚“ใ‚ˆใ†ใ‹ใ‚“/ใ‚‰ใ„ใ˜ใ‚…ใ‚“/ใ˜ใ‚…ใ†ใ‚‰ใ„ใใ†ใ‹ใ‚“
ๆญฃ่ฆ็ฉบๆฏ|ใ›ใ„ใใใ†ใผ
่ปฝ็ฉบๆฏ/่ปฝๆฏ|ใ‘ใ„ใใ†ใผ/ใ‘ใ„ใผ
ๆฐดไธŠๆฉŸๆฏ่‰ฆ/ๆฐดๆฏ|ใ™ใ„ใ˜ใ‚‡ใ†ใใผใ‹ใ‚“|ใ™ใ„ใผ
็ตฆ็ณง่‰ฆ|ใใ‚…ใ†ใ‚Šใ‚‡ใ†ใ‹ใ‚“
; ่ฃ…ๅ‚™ใƒป่ฃ…ๅ‚™็จฎ
ๅ˜่ฃ…็ ฒ|ใŸใ‚“ใใ†ใปใ†
้€ฃ่ฃ…็ ฒ|ใ‚Œใ‚“ใใ†ใปใ†
้€ฃ่ฃ…้ซ˜่ง’็ ฒ|ใ‚Œใ‚“ใใ†ใ“ใ†ใ‹ใใปใ†
้€ฃ่ฃ…ๅ‰ฏ็ ฒ|ใ‚Œใ‚“ใใ†ใตใใปใ†
ไธ‰้€ฃ่ฃ…|ใ•ใ‚“ใ‚Œใ‚“ใใ†
ๅ››้€ฃ่ฃ…|ใ‚ˆใ‚“ใ‚Œใ‚“ใใ†
ไธ‰้€ฃ่ฃ…็ ฒ|ใ•ใ‚“ใ‚Œใ‚“ใใ†ใปใ†
ไธ‰้€ฃ่ฃ…้ญš้›ท|ใ•ใ‚“ใ‚Œใ‚“ใใ†ใŽใ‚‡ใ‚‰ใ„
ๅ››้€ฃ่ฃ…้ญš้›ท|ใ‚ˆใ‚“ใ‚Œใ‚“ใใ†ใŽใ‚‡ใ‚‰ใ„
่‰ฆๆ”ป|ใ‹ใ‚“ใ“ใ†
่‰ฆๆˆฆ|ใ‹ใ‚“ใ›ใ‚“
็‘ž้›ฒ|ใšใ„ใ†ใ‚“
ๅฝฉ้›ฒ|ใ•ใ„ใ†ใ‚“
ไธ‰ๅผๅผพ/ไธ‰ๅผ้€šๅธธๅผพ|ใ•ใ‚“ใ—ใใ ใ‚“/ใ•ใ‚“ใ—ใใคใ†ใ˜ใ‚‡ใ†ใ ใ‚“
่‰ฆๅต|ใ‹ใ‚“ใฆใ„
ๆฐดไธŠๅตๅฏŸๆฉŸ/ๆฐดๅต|ใ™ใ„ใ˜ใ‚‡ใ†ใฆใ„ใ•ใคใ/ใ™ใ„ใฆใ„
ๅคง็™บๅ‹•่‰‡|ใ ใ„ใฏใคใฉใ†ใฆใ„
ๆŽขไฟกๅ„€|ใŸใ‚“ใ—ใ‚“ใŽ
ๆ™ดๅต|ใ›ใ„ใ‚‰ใ‚“
ๅ™ด้€ฒ็ ฒ|ใตใ‚“ใ—ใ‚“ใปใ†
ๆฐดไธŠๆฉŸ|ใ™ใ„ใ˜ใ‚‡ใ†ใ
็”ฒๆจ™็š„|ใ“ใ†ใฒใ‚‡ใ†ใฆใ
; ้™ฃๅฝข
ๅ˜็ธฆ้™ฃ|ใŸใ‚“ใ˜ใ‚…ใ†ใ˜ใ‚“/ใŸใ‚“ใŸใฆ
่ค‡็ธฆ้™ฃ|ใตใใ˜ใ‚…ใ†ใ˜ใ‚“/ใตใใŸใฆ
่ผชๅฝข้™ฃ|ใ‚Šใ‚“ใ‘ใ„ใ˜ใ‚“
ๆขฏๅฝข้™ฃ|ใฆใ„ใ‘ใ„ใ˜ใ‚“
ๅ˜ๆจช้™ฃ|ใŸใ‚“ใŠใ†ใ˜ใ‚“/ใŸใ‚“ใ‚ˆใ“
#!/bin/sh
eecho() {
echo "$@" >&2
}
usage() {
eecho -e "Usage: `basename ${0}` [<options>] [<input files>...]"
eecho -e "\tTool for multiskkserv."
eecho -e "\tYou can use standard input instead of input files by not giving input files."
eecho -e "options:"
eecho -e "\t-s <skkdic output>\tOutput skkdic file."
eecho -e "\t\t\t\tNote that this output might be invalid."
eecho -e "\t\t\t\tUse tools like skk-tools to use the output."
eecho -e "\t-c <cdb output>\t\tOutput cdb file."
eecho -e "\t-d <command>\t\tCommand to execute when done."
}
OUTPUT_SKK=
OUTPUT_CDB=
DONE_COMMAND=
case "$1" in
"--help"|"-h")
usage
exit
;;
esac
while getopts "d:s:c:" OPT ; do
case "$OPT" in
"s")
# skkdic output file
OUTPUT_SKK="$OPTARG"
;;
"d")
# command
DONE_COMMAND="$OPTARG"
;;
"c")
# cdb output file
OUTPUT_CDB="$OPTARG"
;;
esac
done
shift $(( ${OPTIND} - 1 ))
if [ $# -lt 1 ] ; then
usage
exit 2
fi
OUTPUT_FILE="$1"
AWK_CONVERT_SCRIPT='
BEGIN {
FS="|"
}
/^;/ {
print ";"$0
}
/.*\|.*/ && /^[^;]/ {
#print $0
split($2, SRC, "/")
#print "---" SRC[1]
for(ITER in SRC) {
print SRC[ITER] " /" $1 "/"
}
}'
if [ "x${OUTPUT_SKK}" == "x" ] ; then
if [ "x${OUTPUT_CDB}" == "x" ] ; then
eecho "ERROR: No output files."
exit 2
fi
cat "$@" | awk "${AWK_CONVERT_SCRIPT}" | nkf -e | skkdic-p2cdb "${OUTPUT_CDB}"
chmod 444 "${OUTPUT_CDB}"
else
if [ "x${OUTPUT_CDB}" == "x" ] ; then
cat "$@" | awk "${AWK_CONVERT_SCRIPT}" | nkf -e | tee "${OUTPUT_SKK}"
else
cat "$@" | awk "${AWK_CONVERT_SCRIPT}" | nkf -e | tee "${OUTPUT_SKK}" | skkdic-p2cdb "${OUTPUT_CDB}"
chmod 444 "${OUTPUT_CDB}"
fi
fi
if [ "x${DONE_COMMAND}" != "x" ] ; then
# never quote args of eval.
eval ${DONE_COMMAND}
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment