我希望使用脚本获取macbook上序列号的某一部分,并将其与另一个变量结合使用,以便根据计算机序列号的最后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个字符留给我?
发布于 2015-07-16 07:43:30
您非常接近;只需告诉awk取正确长度的字符串:
ioreg -l | grep IOPlatformSerialNumber | awk '{print substr( $0, length($0) - 6, 6 )}'从文件中:
substr(字符串、开始、长度) 这将返回字符串的长度-字符长子字符串,从字符号开始。字符串的第一个字符是第一个字符。 例如,substr("washington",5,3)返回"ing“。如果长度不存在,则此函数将返回字符串的整个后缀,从字符号开始开始。例如,substr("washington",5)返回"ington“。如果长度大于字符串中剩余的字符数,则情况也是如此,从字符号开始计数。
https://stackoverflow.com/questions/31448110
复制相似问题