Wie zu lösen "Wort zu lang" - Fehler in unix?

Schreibe ich eine TC-shell-Skript namens pl_dict in unix das akzeptiert eine Liste von englischen Wörtern in singular-form als Eingabe und druckt die Pluralform der jedes Wort in einer separaten Zeile. Es wird eine Datei mit einer Liste von Wörtern in der englischen Sprache und ein anderes c-Programm, das akzeptiert ein Englisches Wort in singular-form als argument und druckt die plural form des Wortes.
Hier ist mein code:

set dictionary = (/usr/share/dict/words)

set irregular = (/share/files/irregular.txt)

 #go over all the input words

foreach word ($argv[*])

    set irregularWord = `grep $word $irregular | cut -d" " -f1`

    #the word is found in irregular.txt file
    if ("$irregularWord" != "") then
       gcc -o pluralize pluralize.c
       ./pluralize -f irregular.txt $word

    else #the word is not found in the irregular file

       #search for it in the dictionary
       set realEnglishWord = `grep $word $dictionary`

       #the word is a real English word
       if ("$realEnglishWord" != "") then
          gcc -o pluralize pluralize.c
          ./pluralize $word
       else
          echo "$word":" word not found in dictionary."
       endif
    endif
end

Funktioniert es ganz gut, bis ich versuchen zu verkehren diese: pl_dict Fische Fuß foox Haus-Maus

Hier die Ausgabe die ich bekomme, ist:

fish

feet

foox: word not found in dictionary.

Word too long.

Was ist das problem und wie kann ich es beheben?

Danke.

  • Versuchen Sie, einige debug-Echos, um zu sehen, was $word ist ... grep kann passend sein, mehrere Zeilen aus dem Wörterbuch ... Wenn dem so ist, können Sie mit awk und machen eine genaue übereinstimmung von $1
InformationsquelleAutor Rona Hirsch | 2014-01-04
Schreibe einen Kommentar