2017-07-19 3 views
1

この文字列を配列に変更するのが難しいです。これは本当に簡単なはずですが、Rubyを使うのはかなり新しいです。私はそれを得ることができないので、私は.splitを使用しようとしていました。ルビのシェルスクリプトを

tcpPorts = %x(sudo netstat -ntpl |awk '{ if(NR > 2) print " "$4" "}' | awk -F: '{print $NF}') 
+0

配列はどうあるべきか?期待される配列の例が役に立つでしょう。 – rodsoars

+0

'split'を使ってコードを見せてもらえませんか?私はちょうど 'tcpPorts.split'を試したので完全に動作しましたので、あなたが何をしようとしているのか完全にはわかりません。 – eiko

+0

あなたはルビーを知っているがawkを知らないすべての人々があなたを助けてくれるのが好きです。喜んで普通の英語であなたの発音の説明を追加してください。 – Meier

答えて

0

split("\n")を使用しています。

これは私のLinux仮想マシン上で正常に動作する:

irb(main):002:0> `sudo netstat -ntpl |awk '{ if(NR > 2) print " "$4" "}' | awk -F: '{print $NF}'`.split("\n") 
=> ["22 ", "5432 ", "25 ", "38880 ", "6379 ", "111 ", "80 ", "51187 ", "22 ", "5432 ", "25 ", "3306 ", "111 "] 
0

まったく簡単ではありません。しかし、標準のlib Shellwordsを見てください。それはカスタムsplitメソッドを持っています。