1
我很難將此字符串更改爲數組。這應該是非常簡單的,但使用紅寶石很新,我似乎無法得到它,我試圖使用.split。將shell腳本轉換爲ruby數組
tcpPorts = %x(sudo netstat -ntpl |awk '{ if(NR > 2) print " "$4" "}' | awk -F: '{print $NF}')
我很難將此字符串更改爲數組。這應該是非常簡單的,但使用紅寶石很新,我似乎無法得到它,我試圖使用.split。將shell腳本轉換爲ruby數組
tcpPorts = %x(sudo netstat -ntpl |awk '{ if(NR > 2) print " "$4" "}' | awk -F: '{print $NF}')
使用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 "]
不容易。但看看標準lib Shellwords,它有一個自定義split
方法。
如何數組應該是什麼?預期數組的一個例子會很有幫助。 – rodsoars
你能告訴我們使用'split'的代碼不起作用嗎?因爲我剛剛嘗試過'tcpPorts.split'並且它工作得很好,所以我不完全確定你想要做什麼。 – eiko
我喜歡所有知道紅寶石但不知道awk的人會幫助你,pleasse在正常的英語中添加你的pronlem描述。 – Meier