繁体   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