首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字符串中获取最后四个字符

从字符串中获取最后四个字符
EN

Stack Overflow用户
提问于 2015-04-06 20:45:40
回答 4查看 1.2K关注 0票数 0

我试图从终端解析Mac序列号的最后4个字符。我可以用这个命令抓取序列:

serial=$(ioreg -l |grep "IOPlatformSerialNumber"|cut -d ""="" -f 2|sed -e s/[^[:alnum:]]//g)

但我只需要输出最后4个字符。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-07 03:18:11

在实际工作之后,使用a shell parameter expansion提取最后4个字符,但您可以在一步内完成所有操作:

代码语言:javascript
复制
ioreg -k IOPlatformSerialNumber | sed -En 's/^.*"IOPlatformSerialNumber".*(.{4})"$/\1/p'
  • ioreg -k IOPlatformSerialNumber返回的行比ioreg -l少得多,因此它大大加快了操作速度(在我的机器上大约快了80% )。
  • sed命令匹配整个感兴趣的行,并将其替换为行结束的"之前的最后4个字符;也就是说,它返回最后4个字符。它的价值。

注意:ioreg输出项目如下所示:

代码语言:javascript
复制
    |   "IOPlatformSerialNumber" = "A02UV13KDNMJ"

至于您的原始命令:cut -d ""=""cut -d =相同--在cut看到值之前,shell只需删除=周围的空字符串即可。注意,cut只接受一个分隔符char。

票数 1
EN

Stack Overflow用户

发布于 2015-04-06 20:50:37

在linux论坛echo ${serial:(-4)}中找到的

票数 3
EN

Stack Overflow用户

发布于 2015-04-06 21:21:36

您也可以这样做:grep -Eo '.{4}$' <<< "$serial"

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

https://stackoverflow.com/questions/29479377

复制
相关文章

相似问题

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