使用grep命令</tag>在Unix中搜索<tag>

时间:2013-11-18 06:33:39

标签: shell unix

我正在尝试执行以下命令

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

它解析$ line并显示错误,因为已解析的值$ line不是文件或目录。

它实际上显示了行号的总数。

什么是错误......?

2 个答案:

答案 0 :(得分:1)

  

它解析$ line并显示错误,因为解析值$ line不是   文件或目录。

您需要引用模式:

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

答案 1 :(得分:0)

将$ line放在单引号中,以避免尖括号被视为重定向操作。

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