我试图找到一个字符串在文件中重复的次数,同时我必须将它存储在一个变量中。
当我使用命令 ( cat filename | grep -c '123456789'
) 时,它会正确显示计数,但是当我使用以下命令时,它会显示为未找到命令。
var =$(cat filename | grep -c '123456789')
echo $var
你能让我知道我哪里错了吗?
我试图找到一个字符串在文件中重复的次数,同时我必须将它存储在一个变量中。
当我使用命令 ( cat filename | grep -c '123456789'
) 时,它会正确显示计数,但是当我使用以下命令时,它会显示为未找到命令。
var =$(cat filename | grep -c '123456789')
echo $var
你能让我知道我哪里错了吗?
Don't use spaces around the =
sign:
var=$(cat filename | grep -c '123456789')
Read at least the Bash Prog Intro Howto
But you've got a useless use of cat
so code simply
var=$(grep -c '123456789' filename)
请记住,grep 可以直接读取文件。您可以避免无用地使用 cat。
在您问题的示例中,由于等号前的空格,导致出现command not found错误。试试这个:
var=$(grep -c '123456789' filename)
或者如果您使用的是 bash:
read var < <(grep -c '123456789' filename)
或(为了完整性)在 csh/tcsh 中:
setenv var `grep -c '123456789' filename`
Using backquotes will also work:
varx=`( cat filename| grep -c '123456789' )`
I.e., the $
is not required, you can assign the output of various commands to variables through the use of backquotes.
For instance:
$ pwd
/home/user99
$ cur_dir=`pwd`
$ echo $cur_dir
/home/user99