2017-09-04 4 views
-2

In meinem Code hat jemand folgende Kamelroute geschrieben. Die Eingabe in feed.in ist eine CSV-Datei. Ich kann nicht verstehen, was das Shell-Skript macht.Shell - was macht dieses Skript?

<route id="route-id-1"> 
     <from uri="{{feed.in}}" /> 
     <setHeader headerName="CamelExecCommandArgs"> 
      <simple>-h \\|AAAAA\\||\\|BBBBB\\||\\|CCCCC\\||\\|DDDD\\||.ssif\\| ${in.header.CamelFileAbsolutePath} ${in.header.CamelFileAbsolutePath}.filtered</simple> 
     </setHeader> 
     <to uri="ref:execGrep"/> 
    </route> 

<endpoint id="execGrep" uri="exec:${APP_SCRIPTS}/camel-egrep.sh"/> 

Inhalt camel-egrep.sh ist:

#!/bin/bash 
egrep ${@:1:$(($#-1))} > ${@: -1} 
+0

Was ist Ihre Frage? – campovski

+0

meine Frage ist: Was macht das Shell-Skript, wenn diese Argumente übergeben werden. –

+0

Ihre Frage ist unklar. Sie sollten die Frage bearbeiten, um zu zeigen, wie 'camel-egrep.sh' tatsächlich aufgerufen wird, d. H. Welche Argumente an sie übergeben werden und was die Ausgabe ist. –

Antwort

0

Ich nehme an, dass {{feed.in}} auf den Namen eines Verzeichnisses auswertet. Die Camel-Route wird aktiv, wenn eine Datei im Verzeichnis abgelegt wird. Es liest die Datei und führt das Skript camel-egrep mit bestimmten Argumenten aus. Die vorletzten Argumente sind der Dateiname und der Dateiname mit angehängtem ".filtered".

ich, dass das Gesamtergebnis xxx.filtered für jede Datei eine Datei erstellen wird erraten würde xxx, die gezeigt wird, wo die erzeugte Datei von Zeilen in der Originaldatei besteht, die AAAAA|... das Suchmuster entsprechen.