grep 正则表达式 如何

grep 正则表达式 如何

您好,我有一个包含 5 位邮政编码的文件。

我正在尝试使用 grep 打印从 9 开始的邮政编码,并且只能包含 4-7 之间的数字

我正在使用的命令是

grep '[4-7], 9'$ zipcodesDataEntry.cvs

问题是我得到的邮政编码包含数字 1 2 3 8 我的输出应该是:

95544
94554
94445
95567

但是,我得到了一些邮政编码,例如:

91121
92231 

我试图排除任何不是 9 且在 4-7 范围内的数字

答案1

鉴于此 infile:

cat zipcodes 
95544 94554 94445 92231 95567 91121

我可以使用这个 grep:

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567

答案2

输入文件内容:

95544 
94554 
94445 
95567
91121 
92231

使用awk(如果egrep不可用),您可以尝试如下操作:

awk '/9[4-7]{4}/' zip.txt

输出:

95544 
94554 
94445 
95567

答案3

grep '^9.[4-7].*' zipcodesDataEntry.cvs

  1. ^ 正在比较的字符串的开头
  2. .(句点)匹配任意字符
  3. 星号,零个或多个

相关内容