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

时间:2012-06-05 04:59:04

标签: unix

我正在尝试查找字符串在文件中重复的次数,同时我要将其存储在变量中。

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

var =$(cat filename | grep -c '123456789')
echo $var

你可以让我知道我哪里错了吗?

3 个答案:

答案 0 :(得分:16)

请勿在{{1​​}}标志周围使用空格:

=

至少阅读Bash Prog Intro Howto

但你使用var=$(cat filename | grep -c '123456789') 无用,所以代码只是

cat

答案 1 :(得分:6)

请记住,grep可以直接读取文件。您可以避免 useless use of cat

在您问题的示例中,由于等号前面的空格,发生 命令未找到 错误。试试这个:

var=$(grep -c '123456789' filename)

或者如果你正在使用bash:

read var < <(grep -c '123456789' filename)
csh / tcsh中的

或(完整性):

setenv var `grep -c '123456789' filename`

答案 2 :(得分:1)

使用反引用也可以:

varx=`( cat filename| grep -c '123456789' )`

即,$不是必需的,您可以通过使用反引号将各种命令的输出分配给变量。

例如:

$ pwd
/home/user99

$ cur_dir=`pwd`
$ echo $cur_dir
/home/user99