如何将cat命令的值存储在变量var中?

Jac*_*mes 7 unix

我试图找到一个字符串在文件中重复的次数,同时我要将它存储在一个变量中.

当我使用命令(cat filename | grep -c '123456789')时,它会正确显示计数,但是当我使用下面的命令时,它显示为未找到的命令.

var =$(cat filename | grep -c '123456789')
echo $var
Run Code Online (Sandbox Code Playgroud)

你能告诉我哪里错了吗?

Bas*_*tch 16

不要在=标志周围使用空格:

var=$(cat filename | grep -c '123456789')
Run Code Online (Sandbox Code Playgroud)

至少阅读Bash Prog Intro Howto

但是你cat简单地使用了这么简单的代码

    var=$(grep -c '123456789' filename)
Run Code Online (Sandbox Code Playgroud)


gho*_*oti 6

请记住,grep可以直接读取文件.你可以避免无用的猫.

在您的问题的示例中,由于等号前面的空格,发生命令not found错误.试试这个:

var=$(grep -c '123456789' filename)
Run Code Online (Sandbox Code Playgroud)

或者如果你使用bash:

read var < <(grep -c '123456789' filename)
Run Code Online (Sandbox Code Playgroud)

或者(为了完整性)在csh/tcsh中:

setenv var `grep -c '123456789' filename`
Run Code Online (Sandbox Code Playgroud)

  • 很难理解你根据这个评论提出的要求,可能是由于SO的格式造成的混乱.如果您需要在问题中添加更多详细信息,请单击问题下的[编辑](http://stackoverflow.com/posts/10891817/edit)链接,进行更改,然后相应地更新我的答案. (2认同)