2013-11-18 2 views
0

Я пытаюсь exeucute следующей команды
Поиск <TAG> в Unix с помощью команды Grep

while read line 
do 
var=`cat ids_acct_acct_tda_20131102.dat|grep <$line>|wc -l` 
echo " $var" 
done < "m_field1.txt" 

Он решает $ линии и показывая ошибку как разрешенное значение $ линии не файл или каталог.

На самом деле это показывает общее количество номеров строк.

что такое ошибка ...?

ответ

0

Поместите строку $ в одинарные кавычки, чтобы избежать угловых скобок, которые рассматриваются как операции перенаправления.

var=`cat ids_acct_acct_tda_20131102.dat|grep '<$line>'|wc -l` 
1

Он решает $ линии и показывая ошибку, как решить значение $ строка не файла или каталог.

Вы должны процитировать шаблон:

grep "<$line>" 

Когда вы говорите:

grep <$line> 

< и > интерпретируются как операторы перенаправления.


следующие строки:

var=`cat ids_acct_acct_tda_20131102.dat|grep <$line>|wc -l` 
echo " $var" 

можно записать в виде:

grep -c "<${line}>" ids_acct_acct_tda_20131102.dat 
Смежные вопросы