Unix Cat:没有这样的文件或目录错误。

8
我有以下脚本。
#!/bin/bash
set i=0;
while read line
do
  echo "$line";
  $i < cat "my.log" | grep -w '$line' | wc -l;
  echo "$i";
  i=0;
done < "test.txt"

test.txt 包含如下数值

abc
def
lmn

我的日志记录包含以下值:

> INFO 2013-08-16 13:46:48,660 Index=abc insertTotal=11  
> INFO 2013-08-16 13:46:48,660 Index=abcd insertTotal=11  
> INFO 2013-08-16 13:46:48,660 Index=def insertTotal=11  
> INFO 2013-08-16 13:46:48,660 Index=abcfe insertTotal=11

目标是从test.txt中选择每个值,并在my.log文件中搜索该模式。找到模式的次数将被赋值给变量i。
我将检查变量i的值,如果为0或未找到模式,则希望该模式存储在另一个文件中。
目前,我正在获取:
./parser.sh: line 7: cat: No such file or directory

我在命令行上尝试使用cat命令,并且它正常工作,但是在脚本内部却出现了这个错误。

2个回答

7

你为什么要使用grep的-w选项?它的意思是“只选择包含整个单词匹配的那些行。”这符合你的要求吗? - user1907906
是的,基本上我有像abcd abc abcde这样的值在不同的行上。我想挑选出搜索模式(例如:abc)与该值完全匹配的行。 - Macky
完成了,请看一下。谢谢。 - Macky
太棒了,它起作用了。你能解释一下解决方案或者给我一个链接吗? - Macky
谢谢@Tichodroma。如果我能给你额外的积分,我会的 :-) - Macky
显示剩余3条评论

1
我有类似以下的错误信息:
cat: command not found
curl: command not found

这是由类似以下代码引起的:

export PATH=$1
export SERVER=$(cat s_remote)

curl $@ $SERVER$PATH

解决方案是将PATH变量重命名为其他名称。 PATH在本地由shell使用,为不同目的设置它会干扰shell。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接