2017-04-07 1 views
-1

Im mit diesem Befehl funktioniert aber nichtWie könnte ich Rubin für die erste Zeile drucken?

convert capchas4 -define connected-components:verbose=true -connected-components -4 -auto-level ccredsult.png \ 
    | ruby -a -F' ' -ne 'puts $F[3]' \ 
    | ruby -a -F'' -ne 'puts $F[0].split(/\n/)[1]' 

die insput dieses Befehls ist

0: 100x50+0+0 51.0,25.2 4019 srgba(251,254,252,0) 
    1: 28x22+39+9 51.1,19.1 353 srgba(0,0,0,1) 
    3: 19x22+68+12 74.3,21.3 225 srgba(0,0,0,1) 
    4: 15x23+5+13 10.0,24.7 211 srgba(0,0,0,1) 
    2: 15x24+22+10 28.7,22.6 192 srgba(0,0,0,1) 

und Ausgang ist diese

100x50+0+0 
28x22+39+9 
19x22+68+12 
15x23+5+13 
15x24+22+10 

ich diesen Ausgang

100x50+0+0 
erwartet

wie ich das lösen könnte Bitte helfen Sie mir

+1

Bitte überprüfen und verbessern Sie die Formatierung und den Wortlaut Ihrer Frage. Stack Overflow ist eine Online-Referenzseite und die Lesbarkeit und Verständlichkeit der Frage ist äußerst wichtig. Wenn Englisch nicht Ihre Muttersprache ist, kann es hilfreich sein, einen Kollegen zu haben, der mit dem Problem vertraut ist und der Englisch spricht. Jon Skeets "[Die perfekte Frage schreiben] (https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)" wäre eine gute Seite zum Lesen. –

+1

Woher kommt 'centroid'? Es ist nirgends in deinem Input enthalten. – Barmar

+1

Wenn Sie nur die erste Zeile der Ausgabe verarbeiten möchten, leiten Sie es durch 'Kopf -1' – Barmar

Antwort

0

Ihre Befehlszeile macht eine Menge, die es nicht braucht. Versuchen Sie folgendes:

echo '0: 100x50+0+0 51.0,25.2 4019 srgba(251,254,252,0)' | ruby -e 'puts ARGF.readline.split[3]' 

Welche Ausgänge:

4019 

Sie, dass Ruby Linie anstelle von Ihrem Versuch verwenden könnte.

Wenn Ihre Daten in einer Datei ist, oder mit mehr Daten zu testen:

cat > ~/Desktop/test.txt 
0: 100x50+0+0 51.0,25.2 4019 srgba(251,254,252,0) 
1: 28x22+39+9 51.1,19.1 353 srgba(0,0,0,1) 
3: 19x22+68+12 74.3,21.3 225 srgba(0,0,0,1) 
4: 15x23+5+13 10.0,24.7 211 srgba(0,0,0,1) 
2: 15x24+22+10 28.7,22.6 192 srgba(0,0,0,1) 

Dann kochend die Daten in Ruby-:

ruby -e 'puts ARGF.readline.split[3]' < ~/Desktop/test.txt 

Ausgänge:

4019 

Lesen Sie die Dokumentation zu ARGF, ARGF.readline und split zu verstehen, was es macht.

Verwandte Themen