我试图找到字符串在文件中重复的次数,同时我必须将其存储在变量中。
当我使用命令(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