foreach no match -C сценарий оболочки - PullRequest
0 голосов
/ 31 октября 2009

Я пытаюсь написать свой первый скрипт для поиска заданного шаблона в текстовом файле с именем test. Вот скрипт:

#! /bin/csh
 echo -n "enter pattern: "
  set pattern = $<
    foreach word (`cat test`)
         echo $word | egrep $pattern
    end

Когда я пытаюсь запустить его, я получаю сообщение foreach: совпадений не найдено. Я подозреваю, что проблема вызвана (cat test). Любая помощь будет высоко ценится.

Ответы [ 2 ]

1 голос
/ 31 октября 2009

@ Пэт - рад, что вы это исправили. Циклический перебор слов в файле и запуск egrep над каждым из них - это немного странный способ сделать это - я предполагаю, что вы изучаете циклы оболочки C, а не ищете наиболее сжатое решение. Вы можете сравнить все файлы за один раз:

egrep "\b$pattern\b" test

\b сопоставляет grep на границе слова.

У меня есть программа сочувствия с использованием csh - вот кое-что для размышления: Программирование Csh считается вредным .

1 голос
/ 31 октября 2009

это должна быть оболочка C ...? вы можете научиться искать файлы, используя awk

awk 'BEGIN{
 printf "Enter Pattern: "
 getline pattern < "-"
}
$0 ~ pattern{
    print 
}
' myfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...