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

  • 本文关键字:cat 命令 存储 变量 var unix
  • 更新时间 :
  • 英文 :


我试图找到字符串在文件中重复的次数,同时我必须将其存储在变量中。

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

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

你能让我知道我错在哪里吗?

不要在=符号周围使用空格:

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

至少阅读 Bash Prog 介绍 如何

但是你对cat的无用使用,所以代码很简单

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

请记住,grep可以直接读取文件。 你可以避免无用地使用猫

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

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

或者如果您使用的是 bash:

read var < <(grep -c '123456789' filename)

或(为了完整起见)在 CSH/TCSH 中:

setenv var `grep -c '123456789' filename`

使用反引号也可以:

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

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

例如:

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