2016-08-09 172 views
0

Ich versuche herauszufinden, ob ich die richtige leptonica-Version installiert habe. Ich betreibe tesseract -v und der Ausgang ist dieses:Überprüfen Sie, ob die Terminalausgabe mit meiner Zeichenfolge übereinstimmt.

tesseract 3.04.01 

leptonica-1.73 

    libgif 5.1.2 : libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8 : libwebp 0.4.4 : libopenjp2 2.1.0 

Die Ausgabe auf stderr geschrieben, so dass mein Skript wie folgt aussieht:

if tesseract -v 2> >(head -n2 | tail -n1) | grep -q 'leptonica-1-73' ; then 
    echo "matched" 
else 
    echo "not found" 
fi 

Als ich das Skript ausführen, zeigt es:

Syntax error: redirection unexpected. 

Irgendeine Idee warum?

+0

@Igor Chubin Dank für meine Frage Bearbeitung! –

+0

Sie können wahrscheinlich die gesamte Mitte dieser Pipeline vermeiden: 'if tesseract -v 2 | grep -q 'leptonica-1-73'' –

+0

Starten Sie Ihr Skript mit '#!/bin/sh' oder' #!/bin/bash'? Prozesssubstitution ist eine Bash-Funktion. Gibt es auch in ksh und wahrscheinlich zsh –

Antwort

3

Ja.

Verwenden

tesseract -v 2>&1 | head -n2 | tail -n1 

statt

tesseract -v 2> >(head -n2 | tail -n1) 
+0

Arbeitete ganz gut. Danke vielmals! –

+0

@GEazy, bitte akzeptieren Sie die Antwort, wenn es Ihr Problem gelöst hat. –

+0

http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –