我需要在一个奇怪的字符串中检查用户ID。我只想要有它的台词。如何在下面的示例字符串中检查一行中的4个整数?
"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"在这些例子中,我希望通过这些行:
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奖金问题
身份证可以是任何东西,
[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]例如,意思是:
7A7777
AA7777
A77777
A-7777(虽然我会满足于在字符串中找到"7777“)
发布于 2014-06-18 13:00:02
正如评论中所指出的那样,这可以使它:
grep -E '[A-Z]{2}[0-9]{4}|[A-Z]{2}[0-9]{4}|[A-Z]-[0-9]{4}'
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
(1) (2) (3)这符合以下要求:
[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)发布于 2014-06-17 22:32:44
下面的解决方案假设每一行都是一个条目,每个条目都由一个正斜杠(/)字符分隔的字段组成。
awk -F/ '$3~/[[:digit:]]{4}$/' filenameAwk在这方面非常有效。
发布于 2014-06-17 22:27:42
grep是您要寻找的工具:
grep '[0-9]\{4\}'https://stackoverflow.com/questions/24273817
复制相似问题