如何使用红宝石打印第一行?

时间:2017-04-07 23:22:54

标签: ruby linux

我使用此命令但不起作用

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

此命令的输入是

  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 个答案:

答案 0 :(得分:0)

您的命令行正在做很多事情,它并不需要。试试这个:

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

哪个输出:

4019

您可以使用该Ruby行代替您的尝试。

如果您的数据在文件中,或者要测试更多数据:

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:

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

输出:

4019

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