管道的使用|在oozie行动

时间:2014-12-04 01:28:49

标签: shell oozie

我想做一些简单的事情,比如

echo 'my text' | grep my
in oozie shell action。

oozie似乎无法将|作为参数处理。

是否有人能够在oozie内部|工作?

3 个答案:

答案 0 :(得分:1)

你可以在像这样的工作流程中使用包装Shell来解决Oozie有限的shell函数:

<action name="shell-node-pipe">
  <shell xmlns="uri:oozie:shell-action:0.2">
    <job-tracker>${jobTracker}</job-tracker>
    <name-node>${nameNode}</name-node>
    <exec>bash</exec>
    <argument>-c</argument>
    <argument>/bin/echo my test | grep my</argument>
    <capture-output />
  </shell>
  <ok to="end" />
  <error to="fail" />
</action>

这样,bash的“-c”选项用于调用包含管道的命令。

答案 1 :(得分:0)

通过给出的示例,您可以解决像这样的管道

grep my <<< 'my text'

§ Useless use of cat

答案 2 :(得分:0)

我深深地看着oozie。它会自动生成一个包装器来执行你输入的命令,显然包装器除了带参数的简单命令外无法处理任何东西。

相关问题