У меня есть файл, скажем, input, содержащий шаблоны, как показано ниже:
quantum_mech_.*
astrophysics_.*
geology_.*
economy_*
У меня есть другой файл, скажем, subject, который выглядит так:
quantum_mech_[101]
astrophysics_[102]
geology_[203]
quantum_mech_[007]
geology_[205]
Я хочу выполнить поиск каждой строки из входного файла и выполнить поиск в файле «тема» и вывести только первое совпадение, а также напечатать «Не сопоставлено», если строка вообще не найдена в файле темы. Итак, я ожидаю вывода, например:
quantum_mech_[101]
astrophysics_[102]
geology_[203]
Not Matched
Я знаю, что это довольно старая проблема, но ни один из методов не работает должным образом для меня. Я пробовал несколько вариантов кода ниже:
script.csh:
cat $1 | while read line
do grep $line ./subject | head -1 >> output
set VAR=$?
if ( $VAR==0 ) then
echo "Not Matched\n" >> output
endif
done
Беги как:
script.csh input
Любая помощь/указатели, использующие sed/grep/csh, будут отличными.
Спасибо и привет,
csh
? Ваш цикл while имеет неправильный синтаксис дляcsh
. - person dogbane   schedule 05.12.2012