与sed的NASHORN $ EXEC问题

时间:2016-09-22 02:29:19

标签: java sed nashorn

我正在尝试使用NASHORN执行以下命令,以提取一部分日志 -

$EXEC("sed '1,/Token to find:/d;/Another token to find:/,$d' /path/to/log/file.log")

但它以 -

结尾
  

退出代码:1,错误消息:: sed:-e表达式#1,字符1:未知   命令:'''

在Linux命令提示符下尝试相同的操作, 下面(单引号')它可以拉出日志部分 -

sed '1,/Token to find:/d;/Another token to find:/,$d' /path/to/log/file.log

另一方面,更改引号(“”),我得到相同的错误 -

sed "1,/Token to find:/d;/Another token to find:/,$d" /path/to/log/file.log
  

sed:-e表达式#1,字符1:未知命令:`

知道什么是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用sed“/'等不同的组合后 - 看起来好像是由于多个脚本表达式(JavaScript / Linux Shell脚本和sed命令本身!),我遇到了这个麻烦。

  

作为一种解决方法,我已将表达式移动到文本文件中并提供   sed它的位置 -

sed --file=/sed/expression/file /path/to/log/file.log

$EXEC("sed --file=/sed/expression/file /path/to/log/file.log");
var output=$OUT
var exitErrorMsg="Exit Code:" + $EXIT + ", Error Msg::" + $ERR

它现在就像魅力一样!