首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ioreg -l和awk在mac上显示序列号的最后6个字符

使用ioreg -l和awk在mac上显示序列号的最后6个字符
EN

Stack Overflow用户
提问于 2015-07-16 07:38:24
回答 1查看 642关注 0票数 0

我希望使用脚本获取macbook上序列号的某一部分,并将其与另一个变量结合使用,以便根据计算机序列号的最后6个字符创建计算机名称。

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

这段代码就是这样做的,但它不能在单用户模式下工作。system_profiler返回一个x86PlatformPlugin错误,因此我尝试:

代码语言:javascript
复制
ioreg -l | grep IOPlatformSerialNumber | awk '{print substr( $0, length($0) - 6 )}'

除了连载以双引号结尾外,效果很好。

我如何修改输出以去掉最后一个字符,并将序列号的最后6个字符留给我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 07:43:30

您非常接近;只需告诉awk取正确长度的字符串:

代码语言:javascript
复制
ioreg -l | grep IOPlatformSerialNumber | awk '{print substr( $0, length($0) - 6, 6 )}'

从文件中:

substr(字符串、开始、长度) 这将返回字符串的长度-字符长子字符串,从字符号开始。字符串的第一个字符是第一个字符。 例如,substr("washington",5,3)返回"ing“。如果长度不存在,则此函数将返回字符串的整个后缀,从字符号开始开始。例如,substr("washington",5)返回"ington“。如果长度大于字符串中剩余的字符数,则情况也是如此,从字符号开始计数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31448110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档