簡體   English   中英

使用grep或awk匹配數字范圍

[英]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的正確方法。

嘗試以下使用PPerl 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM