我正在尝试查找字符串在文件中重复的次数,同时我要将其存储在变量中。
当我使用命令(cat filename | grep -c '123456789'
)时,它会正确显示计数,但是当我使用下面的命令时,它显示为未找到命令。
var =$(cat filename | grep -c '123456789')
echo $var
你可以让我知道我哪里错了吗?
答案 0 :(得分:16)
请勿在{{1}}标志周围使用空格:
=
但你使用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