Shell 搜索<;标签>;在Unix中使用grep命令

Shell 搜索<;标签>;在Unix中使用grep命令,shell,unix,Shell,Unix,我正在尝试执行以下命令 while read line do var=`cat ids_acct_acct_tda_20131102.dat|grep <$line>|wc -l` echo " $var" done < "m_field1.txt" 读取行时 做 var=`cat ID_acct_acct_tda_20131102.dat | grep | wc-l` 回显“$var” 完成

我正在尝试执行以下命令

while read  line
do
var=`cat ids_acct_acct_tda_20131102.dat|grep  <$line>|wc -l`
echo " $var"
done < "m_field1.txt"
读取行时
做
var=`cat ID_acct_acct_tda_20131102.dat | grep | wc-l`
回显“$var”
完成<“m_field1.txt”
它解析$line并将错误显示为解析值$line不是文件或目录

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


什么是错误…?

将$行置于单引号中,以避免尖括号被视为重定向操作

var=`cat ids_acct_acct_tda_20131102.dat|grep  '<$line>'|wc -l`
var=`cat ID_acct_acct_tda_20131102.dat | grep'| wc-l`
它解析$line并将错误显示为未解析$line的解析值 文件或目录

您需要引用以下模式:

grep "<$line>"
可以写成:

grep -c "<${line}>" ids_acct_acct_tda_20131102.dat
grep-c“id\u acct\u acct\u tda\u 20131102.dat
var=`cat ids_acct_acct_tda_20131102.dat|grep  <$line>|wc -l`
echo " $var"
grep -c "<${line}>" ids_acct_acct_tda_20131102.dat