如何使用 awk 制作一个猪拉丁语翻译器?

如何使用 awk 制作一个猪拉丁语翻译器?

我正在尝试将一系列命令存储在一个文件中,这些命令在执行时将英语文本或文件转换为 Pig Latin,我知道 awk 有 if 语句来处理 '-yay' 的使用,并且何时简单地将第一个字母附加到“ay”,但我不确定如何使用它们。

答案1

作为基于字符的翻译,它可能sedawk.例如,以下脚本将对非连字符的英语单词执行猪拉丁语翻译:

#!/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) 将每个单词翻译为两种模式之一:元音后跟零个或多个字母,翻译为以“-yay”结尾,或辅音后跟一个或多个字母,可翻译为这些字母后跟破折号、辅音和“ay”。然后,带有标点符号的翻译后的单词通过嵌套命令连接成一行$(...),并进行回显。

相关内容