我必须使用grep从文本文件中找到8个邮政编码,每个邮政编码的字符顺序如下: 1.大写字母2.数字3.大写字母4.空格(可选) 5.数字6.大写字母7.
我使用了grep命令:
grep '[A-Z][0-9][A-Z][0-9+[][0-9][A-Z][0-9]'这给了我5个在字符4处有空格的邮政编码。
我还使用了这个grep命令:
grep '[A-Z][0-9][A-Z][0-9\.][A-Z][0-9]'这给了我最后的3个邮政编码,没有空格在字符4。
我不知道如何编写一个命令,说明空格可以是可选的。谢谢
发布于 2019-08-09 12:36:18
ERE量词?表示零或一次出现。所以
grep -E '[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]'如果要允许零或多个空格,请将?更改为*。要允许制表符和空格,可以使用[ \t]?、[[:blank:]]?或(在grep中) \s?
发布于 2019-08-09 12:37:02
下面这样的表达式应该有效:
grep '[A-Z][0-9][A-Z][ ]*[0-9][A-Z][0-9]' file发布于 2019-08-09 12:49:01
我的建议:
grep -P "[A-Z][0-9][A-Z][0-9][ ]{0,1}[0-9][A-Z][0-9]" filehttps://askubuntu.com/questions/1164565
复制相似问题