我正在尝试执行以下命令
while read line
do
var=`cat ids_acct_acct_tda_20131102.dat|grep <$line>|wc -l`
echo " $var"
done < "m_field1.txt"
它解析$ line并显示错误,因为已解析的值$ line不是文件或目录。
它实际上显示了行号的总数。
什么是错误......?
答案 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`