#!/usr/bin/env bash # ══════════════════════════════════════════════════════════════ # license_scan.sh — PDF 저작권·라이선스 다국어 스캔 (한국어 병기) # 사용법: bash license_scan.sh /home/ec2-user/RAND_RRA4298-1.pdf # ══════════════════════════════════════════════════════════════ PDF="${1:-/home/ec2-user/RAND_RRA4298-1.pdf}" pdftotext "$PDF" - 2>/dev/null | \ awk ' BEGIN { IGNORECASE = 1 # ── CC / Public Domain (공식 표준 병기) ── map["creative commons"] = "크리에이티브 커먼즈" map["creativecommons.org"] = "크리에이티브 커먼즈(공식 사이트)" map["cc by-nc-nd"] = "CC BY-NC-ND (저작자 표시-비영리-변경금지)" map["cc-by-nc-nd"] = "CC BY-NC-ND (저작자 표시-비영리-변경금지)" map["cc by-nc-sa"] = "CC BY-NC-SA (저작자 표시-비영리-동일조건 변경허락)" map["cc-by-nc-sa"] = "CC BY-NC-SA (저작자 표시-비영리-동일조건 변경허락)" map["cc by-nc"] = "CC BY-NC (저작자 표시-비영리)" map["cc-by-nc"] = "CC BY-NC (저작자 표시-비영리)" map["cc by-nd"] = "CC BY-ND (저작자 표시-변경금지)" map["cc-by-nd"] = "CC BY-ND (저작자 표시-변경금지)" map["cc by-sa"] = "CC BY-SA (저작자 표시-동일조건 변경허락)" map["cc-by-sa"] = "CC BY-SA (저작자 표시-동일조건 변경허락)" map["cc by"] = "CC BY (저작자 표시)" map["cc-by"] = "CC BY (저작자 표시)" map["cc0"] = "CC0 (저작권 포기·퍼블릭 도메인 선언)" map["public domain"] = "퍼블릭 도메인(공공 영역)" map["some rights reserved"] = "일부 권리 보유" map["no rights reserved"] = "권리 없음(권리 포기)" # ── 영어: Copyright / 제한 문구 ── map["all rights reserved"] = "모든 권리 보유" map["copyright"] = "저작권(Copyright)" map["without permission"] = "허가 없이 금지" map["noncommercial"] = "비영리(Noncommercial)" map["non-commercial"] = "비영리(Non-commercial)" map["unauthorized"] = "무허가·무단(Unauthorized)" map["unauthorised"] = "무허가·무단(Unauthorised, 영국식)" map["permission"] = "허가(Permission)" map["license"] = "라이선스(License)" map["licence"] = "라이선스(Licence, 영국식)" map["usage rights"] = "이용권(사용권)" map["open government licence"] = "영국 공공부문 개방 라이선스(OGL)" map["open government license"] = "영국 공공부문 개방 라이선스(OGL)" map["crown copyright"] = "영국 왕실 저작권(Crown Copyright)" map["reproduction"] = "복제(Reproduction)" map["disclaimer"] = "면책 조항(Disclaimer)" # ── 독일어 (German) ── map["urheberrecht"] = "저작권(독일어: Urheberrecht)" map["urheber"] = "저작자(독일어: Urheber)" map["nutzungsrechte"] = "이용권(독일어: Nutzungsrechte)" map["alle rechte vorbehalten"] = "모든 권리 보유(독일어)" map["rechte vorbehalten"] = "권리 보유(독일어)" map["lizenz"] = "라이선스(독일어: Lizenz)" map["lizenziert"] = "라이선스됨(독일어)" map["impressum"] = "임프레숨(법적 고지/운영자 정보)" map["quellennachweis"] = "출처 표기(독일어)" map["gemeinfrei"] = "퍼블릭 도메인(독일어: Gemeinfrei)" # ── 프랑스어 (French) ── map["droits d\047auteur"] = "저작권(프랑스어: Droits d\047auteur)" map["tous droits"] = "모든 권리 보유(프랑스어)" map["reproduction interdite"] = "복제 금지(프랑스어)" map["sans autorisation"] = "허가 없이 금지(프랑스어)" map["domaine public"] = "퍼블릭 도메인(프랑스어)" # ── 일본어 (Japanese) ── map["著作権"] = "저작권(일본어: 著作権)" map["無断転載禁止"] = "무단 전재 금지(일본어)" map["権利保留"] = "권리 보유(일본어)" map["クリエイティブ・コモンズ"] = "크리에이티브 커먼즈(일본어)" map["パブリックドメイン"] = "퍼블릭 도메인(일본어)" map["許可なく"] = "허가 없이(일본어)" map["複製禁止"] = "복제 금지(일본어)" # ── 중국어 간체 (Chinese Simplified) ── map["版权所有"] = "권리 보유(중국어: 版权所有)" map["版权声明"] = "저작권 고지(중국어)" map["版权"] = "저작권(중국어: 版权)" map["保留所有权利"] = "모든 권리 보유(중국어)" map["未经许可"] = "허가 없이 금지(중국어)" map["未经授权"] = "무단 사용 금지(중국어)" map["禁止复制"] = "복제 금지(중국어)" map["公共领域"] = "퍼블릭 도메인(중국어)" map["公有领域"] = "퍼블릭 도메인(중국어)" map["知识共享"] = "크리에이티브 커먼즈(중국어: 知识共享)" map["创用cc"] = "크리에이티브 커먼즈(중국어: 创用CC)" # ── 중국어 번체 (Chinese Traditional) ── map["版權所有"] = "권리 보유(중국어 번체: 版權所有)" map["版權"] = "저작권(중국어 번체: 版權)" map["著作權"] = "저작권(중국어 번체: 著作權)" # ── RAND 전용 ── map["rand.org/pubs/permissions"] = "RAND 이용허가 페이지" # 출력 헤더 print "════════════════════════════════════════════════════════════" print " 📄 License / Copyright Scan (원문 + 한국어 병기)" print "════════════════════════════════════════════════════════════" cnt = 0 } { line = $0 lower = tolower(line) if (line ~ /^[[:space:]]*$/) next hit = 0 out = "" for (k in map) { kl = tolower(k) if (index(lower, kl) > 0) { hit = 1 out = out (out == "" ? "" : "\n ") "▸ " k " → " map[k] } } if (hit) { cnt++ printf "\n── 매칭 #%d (줄 %d) ──────────────────────────\n", cnt, NR printf "[원문] %s\n", line printf "[병기] %s\n", out } } END { print "\n════════════════════════════════════════════════════════════" if (cnt > 0) printf " ✅ 총 %d건의 저작권/라이선스 관련 문구 발견\n", cnt else print " ⚠️ 저작권/라이선스 관련 문구를 찾지 못했습니다." print "════════════════════════════════════════════════════════════" } '