行计数在Unix中未按预期工作
我正在尝试将行计数设置为一个变量。源文件filename.dat包含两行记录,如下所示: 112233;778899 445566 脚本1行计数在Unix中未按预期工作,unix,Unix,我正在尝试将行计数设置为一个变量。源文件filename.dat包含两行记录,如下所示: 112233;778899 445566 脚本1 line_cnt=$(more /home/filename.dat | wc -l) echo $line_cnt 当我运行这个脚本时,我得到2的输出。现在,我有一个修改版本: 脚本2 filename=/home/filename.dat line_cnt=$(more ${filename} | wc -l) echo $line_cnt 输入文件
line_cnt=$(more /home/filename.dat | wc -l)
echo $line_cnt
当我运行这个脚本时,我得到2的输出。现在,我有一个修改版本:
脚本2
filename=/home/filename.dat
line_cnt=$(more ${filename} | wc -l)
echo $line_cnt
输入文件具有相同的记录。但这给了我5的输出,尽管它只有2条记录
有人能告诉我怎么了吗
编辑-更正了第二个脚本中的文件路径
line_cnt=`cat ${filename} | wc -l`
cat${filename}|wc-l应该在反引号中。为什么不在脚本2中使用filename=/home/filename.dat?使用寻呼机根本不是一个好主意<代码>$(wc-l您的_文件)就足够了。对于您的问题:在第二个示例中,您没有指定完整路径。您不是简单地
wc
ing错误的文件吗?为了澄清,在第二个脚本中,变量filename=/home/filename。dat@Mat公平地说,使用寻呼机将获得正确的结果,并产生不同的输出(寻呼机将只给出n
,直接的wc-l将给出n filename.dat
)。@Mat,wc-l/home/filename.dat提供计数和文件名。