2017-04-07 34 views
-1

林这个命令,但没有工作如何使用ruby打印第一行?使用

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]' 

此命令的insput是

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) 

和输出是这

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

我预计今年产量

100x50+0+0 

我该如何解决这个问题 请帮帮我

+1

请审查和改进您的问题的格式和措辞。 Stack Overflow是一个在线参考站点,该问题的可读性和可理解性非常重要。如果英语不是您的主要语言,可能有助于让熟悉问题的同龄人和说英语的同事与您一起工作。 Jon Skeet的“[写出完美的问题](https://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)”将是一个很好的阅读页面。 –

+1

'centroid'从哪里来?这不是在你的输入任何地方。 – Barmar

+1

如果您只想处理输出的第一行,请通过'head -1'管道输入它 – Barmar

回答

0

你的命令行做了很多事,它并不需要。试试这个:

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

,输出:

4019 

你可以使用,而不是你尝试的是红宝石线。

如果数据是在一个文件中,或与更多的数据进行测试:

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) 

然后,数据管道联接到红宝石:

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

输出:

4019 

阅读有关ARGFARGF.readlinesplit的文档了解它在做什么。