실행 시 영어 텍스트나 파일을 Pig Latin으로 변환하는 일련의 명령을 파일에 저장하려고 합니다. awk에는 '-yay' 사용을 처리하는 if 문이 있고 단순히 A 문자인 경우도 있습니다. "ay"에 추가되었지만 어떻게 사용하는지 잘 모르겠습니다.
답변1
문자 기반 번역으로서 아마도 sed
. awk
예를 들어 다음 스크립트는 하이픈이 없는 영어 단어의 Pig-Latin 번역을 수행합니다.
#!/bin/bash
C=bcdfghjklmnpqrstvwxyBCDFGHJKLMNPQRSTVWXY
V=aoueiAOUEI
while read -r line ; do
echo $(echo "$line" | sed 's/\s\+/\n/g' |
sed "s/\b\([$V]\)\(\w*\)/\1\2-yay/;tx
s/\b\([$C]\)\(\w\+\)/\2-\1ay/;:x" )
done
여기에는 a) 입력을 한 줄씩 처리하고, b) 일시적으로 각 줄을 공백을 사용하여 여러 줄로 나누고, c) 각 단어를 두 가지 모드 중 하나로 번역하는 작업이 포함됩니다. 즉, 모음 뒤에 0개 이상의 문자가 오고 "-yay"로 번역됩니다. 어미 또는 자음 뒤에 하나 이상의 문자가 오는 경우 문자 뒤에 대시, 자음 및 "ay"가 오는 것으로 번역될 수 있습니다. 구두점이 있는 번역된 단어는 중첩된 명령을 통해 한 줄로 연결되고 $(...)
에코됩니다.