将wc存储到变量中会保存整个文件

时间:2017-06-13 18:48:30

标签: linux shell unix wc

我试图将wc的输出存储到变量中但有一些问题

  • 首先我不能使用

    COUNT=$(ls -1 file.log | wc -l) 因为我得到错误:

      

    变量语法。

  • 第二,如果我做这样的事情

    COUNT='ls -1 file.log | wc -l'

然后我输入$count我得到类似的东西:文件的内容

  

cat:无法打开|:没有这样的文件或目录

     

cat:无法打开wc:没有这样的文件或目录

     

cat:无法打开-l:没有这样的文件或目录

此外,如果我尝试使用

COUNT='wc -l < ./file.log'

如果我输入$ count我得到:

  

wc:无法打开&lt; 58 ./file.log 58总计

我会非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我认为你使用了错误的引用。您需要使用反引号(`)(大多数键盘中数字1左侧的那个)

尝试,

count=`wc -l file.log`
count=`ls -1 file.log | wc -l`
echo $count

答案 1 :(得分:0)

看起来你正在使用C shell(csh)。它应该是这样的:

#!/bin/csh

set count = `wc -l /path/to/file | cut -d' ' -f1`
echo "$count"

看看这个:https://en.wikibooks.org/wiki/C_Shell_Scripting/Variables

或者,如果已安装脚本,则需要使用bash运行脚本。