我試圖使用system_profiler命令從我的Mac上獲取並打印一些系統信息。我能夠得到的信息很好,但每個項目都有一個領先的空間和尾隨換行符(我認爲)。問題是後面的換行符(或其他什麼)。下面是我使用的命令之一的一個例子:使用awk刪除尾隨空格
system_profiler SPHardwareDataType | awk -F: '/Processor Speed/ {gsub(/^[ \t]+|[ \n]+$/, "", $2); print $2}'
這裏的結果:
2.5 GHz
它不會出現在這裏,但有某種形式的結束字符並導致新隊。上面的gsub正確地刪除了結果開始處的空格,但我試過了所有我能想到的刪除換行符但沒有任何結果。
要查看換行符,請從終端運行system_profiler > output
,然後在您最喜歡的文本編輯器中打開輸出文件並顯示不可見字符。
我最終試圖處理的這些信息我抓住的是使用TextExpander代碼段打印我的基本計算機信息。我已經正確設置了所有的代碼片段,但是我遇到了如上所述的換行符問題。
下面是目前輸出:
Model: MacBookPro9,2
OS Version: Mac OS X
10.8.3
(12D78
)
Processor: 2.5 GHz
Intel Core i5
Graphics: Intel HD Graphics 4000
512 MB
Storage: APPLE SSD SM128E Media
Memory: 8 GB
這裏就是我想要它看起來像:
Model: MacBookPro9,2
OS Version: Mac OS X 10.8.3 (12D78)
Processor: 2.5 GHz Intel Core i5
Graphics: Intel HD Graphics 4000 512 MB
Storage: APPLE SSD SM128E
Memory: 8 GB
TextExpander允許你運行任何shell腳本,所以如果有任何其他的方式,我可以得到我想要的功能我會很樂意使用它。 (即我做了一些搜索,我見過sed
除其他外,但我真的不知道任何有關shell腳本)。
謝謝!
嘗試:' system_profiler SPHardwareDataType | tr -dc'[:print:] \ n'| awk ...'刪除數據中的所有不可打印字符。 – 2013-03-17 20:55:01
謝謝,但這並不適合我。我仍然有領先的空間和換行符。 – 2013-03-17 20:57:59