Здравствуйте, О-о-о-очень нужна помощь, по UNIX-у было всего 2 практический занятия, и разобраться пока в нем полностью не получается. Очень нужно выполнить задание, иначе не видать сданной сессии как своих ушей :( Задание такое:
Разработать командную процедуру, сравнивающую файлы в 2-ух каталогах с эталонным файлом. Имена каталогов и эталонного файла задаются в качестве параметров процедуры. На экран выводятся несовпадающие строки файлов.
и еще вопрос, адреса каталогов нужно ведь полностью прописывать?
Жду помощи...
>Здравствуйте, О-о-о-очень нужна помощь, по UNIX-у было всего 2 практический занятия, и
>разобраться пока в нем полностью не получается. Очень нужно выполнить задание,
>иначе не видать сданной сессии как своих ушей :( Задание такое:
>
>Разработать командную процедуру, сравнивающую файлы в 2-ух каталогах с эталонным файлом. Имена
>каталогов и эталонного файла задаются в качестве параметров процедуры. На экран
>выводятся несовпадающие строки файлов.
>и еще вопрос, адреса каталогов нужно ведь полностью прописывать?
>Жду помощи...
shell какой?
Основным интерпретатором считаем sh, для записи командных процедур Unix.
#!/bin/sh
standart=$1
shift
until [ -z "$1" ]
do
for FILE in `ls $1`
do
if [ -f $1/$FILE ]
then
echo "$1/$FILE"
echo "`diff $standart $1/$FILE`"
fi
done
shift
doneЗапишите это в файл(например cmd), сделайте ему chmod +x cmd
Запускается так ./cmd standart DIR1 DIR2 DIR3
standart - это file-эталон
DIR* папки в которых лежат файлы для сравнения (их может быть сколько угодно)>и еще вопрос, адреса каталогов нужно ведь полностью прописывать?
можно и полностью, и относительно
см также man diff,man comm, можно в русских man'ах opennet.ru
>#!/bin/sh
>standart=$1
>shift
>until [ -z "$1" ]
>do
> for FILE in `ls $1`
> do
> if [ -f $1/$FILE
>]
> then
> echo "$1/$FILE"
> echo "`diff $standart $1/$FILE`"
>
> fi
> done
>shift
>doneО, спасибо! только вот что такое -z и -f ( -f $1/$FILE, -z "$1" )....у меня таких операций не находит...и зацикливается
>что такое -z и -f ( -f $1/$FILE,
> -z "$1" )....у меня таких операций не находит...и зацикливается-z - пустая строка
-f - строка является файломЧто за система??
uname -a