나는 "승리"한 60장의 게임 카드를 샘플링했습니다.이것그리고 카드를 뽑아요이름그리고계산일부 소프트웨어에서 사용할 수 있도록 포맷합니다. 산출체재예:
.<ID><탭>계산<탭>이름
1 단계
나는 다음을 사용하여 에피소드의 텍스트 버전으로 시작했습니다.협회페이지(옆)에서 확인 가능인쇄) 데이터(공백으로 구분된 두 개의 열)를 유지하고 삭제합니다.찬장카드.
2 단계
각 카드 이름에 대해 세미콜론으로 구분된 카드 속성 목록이 포함된 로컬 파일을 검색 list
하고 두 번째 필드의 카드 이름과 일치하여 첫 번째 필드를 추출합니다.ID 번호해당 카드의 경우(첫 번째 필드만 중요하므로 여기서는 줄 수를 줄였습니다):
ID;Full Name;...
0;Air Elemental;1;Air Elemental;0800h;;;;;;;
1;Ancestral Recall;1;Ancestral Recall;0800h;;;;;;;;
2;Animate Artifact;1;Animate Artifact;0800h;;;;;;;
...
10780;Jace, the Mind Sculptor;1;Jace, the Mind Sculptor;0008h;;;;;;;;
10871;Aura Finesse;0;Aura Finesse;0008h;;;;;;;
...그런 다음 각 줄 앞에 다음을 붙입니다.1 단계그리고. ID, 3개의 열이 테이블로 구분되어 있는지 확인하세요. 결승산출파일은 다음과 같습니다(헤더 부분은 신경쓰지 않습니다).
;MY1 - Shardless BUG - #1
;
;User
;User E-Mail
;28/08/2014
;1
;4th Edition
;
.12516 2 Baleful Strix
.12533 4 Shardless Agent
.12700 4 Deathrite Shaman
.9038 4 Tarmogoyf
.10780 2 Jace, the Mind Sculptor
.12004 2 Liliana of the Veil
.12 2 Bayou
.10747 2 Creeping Tar Pit
.12645 4 Abrupt Decay
.1547 4 Brainstorm
.2285 3 Force of Will
.1456 1 Hymn to Tourach
.13650 1 Toxic Deluge
.9286 3 Thoughtseize
.239 1 Swamp
.1486 4 Polluted Delta
.258 3 Underground Sea
.10706 4 Verdant Catacombs
.3329 2 Wasteland
.1 4 Ancestral Recall
.10612 2 Misty Rainforest
.252 2 Tropical Island
위의 소스를 고려하면텍스트파일 및 list
파일, 필요한 출력 파일을 생성하는 방법체재?
답변1
그래서 제가 한 일은 list
파일을 처음 두 값(ID; 이름)으로 잘라낸 다음 소스 텍스트에 이 스크립트를 사용하는 것이었습니다.문서:
#!/usr/bin/env bash
dos2unix "$1"
sed -e '/Sideboard/,$d' "$1" -e '/^$/,$d' | tee source_strip | cut -d ' ' -f 2- >temp
while IFS= read f; do
sed -n "s/\([0-9]*\);$f$/\.\1/p" list
done <temp >IDs
sed -ni 's/^\([0-9]*\) \([a-zA-Z]*\)/\1\t\2/p' source_strip
paste IDs source_strip > final
cat final
물론 이는 다음을 가정합니다.ID 번호모든 이름 검색이 존재합니다. 그렇지 않으면 제대로 작동하지 않습니다. 물론 이 작업을 수행하는 더 우아한 방법이 있지만 이 경우에는 효과적입니다!