>Здравствуйте
>Подскажите, пожалуста, где грабли?
>Имеется текстовый файл (база данных:) - fax.txt (строчек дефисов нет в файле,
>это я для наглядности.
>------------------------------------------------
>Agp "+7 (095) 2070095"
>------------------------------------------------
>и скрипт его с ним работающий
>------------------------------------------------
>#!/bin/bash
>
> tel1="+7 (095) 2070095"
> echo "Tel1 $tel1"
>cat fax.txt | grep "Agp" | while read -r line
>do
> tel2=`echo ${line} | cut
>-d " " -f2- | sed s/\"//g`
> echo "Tel2 $tel2"
> if [ "$tel1" !=
>"$tel2" ];
> then
>
> echo "Tel1 $tel1"
>
> echo "Tel2 $tel2"
>
> echo "Not"
> else
>
> echo "Equal"
> fi
>done
>
>------------------------------------------------
>Запускаю
>------------------------------------------------
>$ ./t_cut3.sh
>Tel1 +7 (095) 2070095
>Tel2 +7 (095) 2070095
>Tel1 +7 (095) 2070095
>Tel2 +7 (095) 2070095
>Not
>------------------------------------------------
>??? Не понятно мне почему ??? Ну ладно меняю 9ю строку с
>'if', убираю кавычки
>------------------------------------------------
> if [ $tel1 !=
>$tel2 ];
>------------------------------------------------
>Запускаю
>------------------------------------------------
>$ ./t_cut3.sh
>Tel1 +7 (095) 2070095
>Tel2 +7 (095) 2070095
>./t_cut3.sh: line 9: [: too many arguments
Надо оставить кавычки, т.к. переменные содержат пробелы
>Equal
>------------------------------------------------
>??? Работает но с ошибкой ???
>Что я нетак пишу?
Скорее всего дело в том что файл fax.txt набран в MS и содержит дополнительный символ перевода строки (\r)
Попробуй
tel2=`echo ${line} | cut -d " " -f2- | perl -ne 's/[\"\r]//g;print;'`
>Заранее спасибо
|