簡體   English   中英

在awreg中使用ioreg -l在Mac上顯示序列號的最后6個字符

[英]Using ioreg -l with awk to display the last 6 characters of the serialnumber on a mac

我希望使用腳本在Macbook air上獲取序列號的特定部分,並將其與另一個變量結合使用,以基於計算機序列號的后6個字符創建計算機名稱。

system_profiler SPHardwareDataType | grep 'Serial Number (system)' | awk '{print substr( $0, length($0) - 5 )}'

這段代碼只是這樣做,但在單用戶模式下不起作用。 system_profiler返回x86PlatformPlugin錯誤 ,所以我嘗試了:

ioreg -l | grep IOPlatformSerialNumber | awk '{print substr( $0, length($0) - 6 )}'

除序列號以“雙引號”結尾外,效果良好。

我如何修改輸出以除去最后一個字符,而讓我留下序列號的最后6個字符?

你很親近 只要告訴awk取正確長度的字符串即可:

ioreg -l | grep IOPlatformSerialNumber | awk '{print substr( $0, length($0) - 6, 6 )}'

從文檔中:

substr(字符串,起始,長度)

這將返回從字符編號start開始的字符串的長字符長子字符串。 字符串的第一個字符是字符號一。

例如,substr(“ washington”,5,3)返回“ ing”。 如果不存在長度,則此函數返回以字符號開始的整個字符串的后綴。 例如,substr(“ washington”,5)返回“ ington”。 從字符數開始算起,如果長度大於字符串中剩余的字符數,情況也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM