awkを使って豚ラテン翻訳を作成するには?

awkを使って豚ラテン翻訳を作成するには?

実行時に英語のテキストまたはファイルをPig Latinに変換する一連のコマンドをファイルに保存しようとしています。 awkには '-yay'の使用を処理するif文があり、単にA文字である場合もあります。 「ay」に追加されましたが、どのように使用しているのかよくわかりません。

ベストアンサー1

文字ベースの翻訳として、おそらくsedawkたとえば、次のスクリプトはハイフンのない英語の単語の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) 入力を 1 行ずつ処理し、b) 一時的に各行をスペースを使用して複数行に分割し、c) 各単語を 2 つのモードのいずれかに変換することが含まれます。つまり、コレクションの後にゼロ個以上の文字が続き、「-yay」に翻訳されます。母語または子音の後に1つ以上の文字が続く場合は、文字の後にダッシュ、子音、および「ay」が続くものに変換できます。句読点を持つ翻訳された単語は、入れ子になったコマンドを介して1行にリンクされ、エコーさ$(...)れます。

おすすめ記事