[英]Use grep or awk to match number range
我是使用grep / egrep / awk的新手,並且沒有把我的頭放在正則表達式周圍(獎金:對於那些零編程經驗的人來說,正則表達式簡介的鏈接會很棒)。
我的問題是圍繞匹配平面文件中的數字范圍。 我的值是十位數。 電話號碼...
例如,我試圖匹配在一定范圍內移動的數字范圍。
55512122041至55512122050(41、42、43、44、45、46、47、48、49和50)。
我一直在使用grep來匹配這樣的第一個值。
grep 555121204[1-9]
下一步是我grep輸入最后一位數字
grep 55512122050
我相信我還沒有找到使用正則表達式來允許一個grep的正確方法。
嘗試以下使用P
( Perl regex )參數的grep命令,
grep -P '55512120(?:4[1-9]|50)' file
要么
grep -E '555121204[1-9]|5551212050' file
這將打印編號范圍為55512122041至55512122050的行。
如果只想打印數字,則在上述grep命令中添加o
參數。
grep -oP '55512120(?:4[1-9]|50)' file
例:
$ cat file
bar foo
5551212040 Don't match
5551212041 Match
5551212050 Match
foo bar
$ grep -P '55512120(?:4[1-9]|50)' file
5551212041 Match
5551212050 Match
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.