首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字符串bash脚本中找到4个数字

在字符串bash脚本中找到4个数字
EN

Stack Overflow用户
提问于 2014-06-17 21:45:39
回答 4查看 126关注 0票数 0

我需要在一个奇怪的字符串中检查用户ID。我只想要有它的台词。如何在下面的示例字符串中检查一行中的4个整数?

代码语言:javascript
复制
    "111/S/H0110//Jake, Greenfield ServiceRequest/bin/ksh"
    "740/S/H5155//Jake, Greenfield/bin/ksh"
    "90/S/Customer  /usr/bin/ksh"
    "740/S///Jake, Greenfield/bin/ksh"

在这些例子中,我希望通过这些行:

代码语言:javascript
复制
    111/S/H0110//Jake, Greenfield ServiceRequest/bin/ksh
    740/S/H5155//Jake, Greenfield/bin/ksh

而不是通过这些:

代码语言:javascript
复制
    90/S/Customer  /usr/bin/ksh
    740/S///Jake, Greenfield/bin/ksh

奖金问题

身份证可以是任何东西,

代码语言:javascript
复制
    [A-Z][A-Z][0-9][0-9][0-9][0-9]
    [0-9][0-9][0-9][0-9][0-9][0-9]
    [A-Z]-[0-9][0-9][0-9][0-9]

例如,意思是:

代码语言:javascript
复制
    7A7777
    AA7777
    A77777
    A-7777

(虽然我会满足于在字符串中找到"7777“)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-06-18 13:00:02

正如评论中所指出的那样,这可以使它:

代码语言:javascript
复制
grep -E '[A-Z]{2}[0-9]{4}|[A-Z]{2}[0-9]{4}|[A-Z]-[0-9]{4}'
         ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
                (1)              (2)             (3)

这符合以下要求:

代码语言:javascript
复制
[A-Z][A-Z][0-9][0-9][0-9][0-9] --> [A-Z]{2}[0-9]{4}   (1)
[0-9][0-9][0-9][0-9][0-9][0-9] --> [0-9]{6}           (2)
[A-Z]-[0-9][0-9][0-9][0-9]     --> [A-Z]-[0-9]{4}     (3)
票数 1
EN

Stack Overflow用户

发布于 2014-06-17 22:32:44

下面的解决方案假设每一行都是一个条目,每个条目都由一个正斜杠(/)字符分隔的字段组成。

代码语言:javascript
复制
awk -F/ '$3~/[[:digit:]]{4}$/' filename

Awk在这方面非常有效。

票数 2
EN

Stack Overflow用户

发布于 2014-06-17 22:27:42

grep是您要寻找的工具:

代码语言:javascript
复制
grep '[0-9]\{4\}'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24273817

复制
相关文章

相似问题

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