埃格雷普没有得到结果



我写了一个小脚本,它将从服务器日志中egrep两种模式

pattern - 'Unable to resolve location classpath:db/migration|Processing PersistenceUnitInfo'

代码片段

#/bin/sh
ssh  tomcat@x.x.x.x egrep -e 'Unable to resolve location classpath:db/migration|Processing PersistenceUnitInfo' /usr/local/dd/logs/ddservice.log

执行结果

bash: Processing: command not found
grep: to: No such file or directory
grep: resolve: No such file or directory
grep: location: No such file or directory
grep: classpath:db/migration: No such file or directory

事实上,属于上述模式的关键字很少。如何修改脚本以获取模式。

您必须使用搜索字符串中的转义空格。

尝试

ssh tomcat@x.x.x.x egrep -e 'Unable to resolve locationclasspath:db/migration|Processing PersistenceUnitInfo' /usr/local/dd/logs/ddservice.log

我在这里有几个假设:

  1. 我在 egrep 之前没有看到管道,并且
  2. 可能应该转义"/"符号。这只是我手下没有笔记本电脑的第一眼。

这是可行的代码:

$ ssh username@somehost "egrep -e "Unable to resolve location classpath:db/migration|Processing PersistenceUnitInfo" /somepath/test.log"
Unable to resolve location classpath:db/migration
Processing PersistenceUnitInfo

然后:

$ cat 1.log 
Unable to resolve location classpath:db/migration
Processing PersistenceUnitInfo

最新更新