[英]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 嗎?
我想我明白你在追求什么——你想避免可能包含偶數的行,但它們所包含的數字都不是偶數。 實例包括3
, 23
, a23
, 23a
, 3a49
。 要匹配具有至少一個偶數行: 2
, 22
, 32
, a32
, 32a
, 45a5bb44
等
模式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.