簡體   English   中英

用 grep 匹配包含偶數的行

[英]Match lines containing even numbers with grep

我正在做一系列關於 grep 的問題,我一直在嘗試以任何方式匹配包含偶數的行(因此,它應該匹配'hello22 23' , '8' , '2222 2999 1' , 'hello2hello9' ,等等。)

問題是,雖然我設法匹配了所有這些情況,但我找不到一種方法來匹配該行只包含偶數或它是 EOL 之前最后一次出現的情況( '22' , 'hello8' ,以應匹配的數字結尾的任何內容)。

到目前為止,這就是我正在使用的:

grep -P '((.)*[02468][^0-9](.)*)'

以上匹配任何后跟偶數且后無任何數字的任何內容,后跟任何其他內容。

我試過使用應該匹配它的'$'正則表達式,但沒有效果。 可能是 grep 沒有正確檢測我的 EOL 嗎?

我想我明白你在追求什么——你想避免可能包含偶數的行,但它們所包含的數字都不是偶數。 實例包括323a2323a3a49 要匹配具有至少一個偶數行: 22232a3232a45a5bb44

模式grep -P '[02468](?=\\D|$)'確保至少存在一個偶數數字,后跟 EOL 或使用前瞻的非數字,並且應該符合您的要求。

$ cat test.txt
3
23
a23
23a
3a49
2
22
32
a32
32a
45a5bb44
$ grep -P '[02468](?=\D|$)' test.txt
2
22
32
a32
32a
45a5bb44

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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