Jak byste hledali řádek obsahující pouze 5 nebo 6 čísel? Něco takového.
případ 1 (má úvodní mezeru)
10 2 12 1 13
případ 2 (bez úvodní mezery)
1 2 3 4 5 6
Myslel jsem, že něco takového bude fungovat.
grep -E '[0-9]{5}'
Přijatá odpověď:
grep -E '[0-9]{5}'
hledá čísla s alespoň 5 číslicemi. Potřebujete 5 čísel s alespoň jednou číslicí:
grep -E '[0-9]+([^0-9]+[0-9]+){4}'
[0-9]+
– číslo o alespoň jedné číslici[^0-9]+[0-9]+
– číslo s alespoň jednou číslicí, před kterou je alespoň jeden nečíslicový znak. Poté to zopakujeme 4krát, abychom dostali 5 čísel oddělených nečíslicemi.- Pokud je požadavek přesně 5, možná budete chtít obklopit tento regulární výraz řetězcem
[^0-9]
tak, aby celá čára odpovídala (samozřejmě s kotvami). - Podle toho, co zde chcete (dělá
1,2,3,4,6
kvalifikovat?), můžete se podívat na jiné oddělovače. Správný vědecký zápis skutečného čísla by například vypadal takto:[+-]?(([0-9]+(.[0-9]+)?)|([0-9]?.[0-9]+))([eE][+-][0-9]+)?
Oddělovače tedy nemusí obsahovat.
,e
, atd. Mohou být pouze mezery, jakomikeserv
poznámky. Nebo možná čárky, pokud se jedná o záznam CSV. Nebo v závislosti na národním prostředí by oddělovač desetinných míst byla čárka. Změňte[^0-9]
podle vašich potřeb.
Jak potlačit zprávu z programu při instalaci pro použití v programu Bash?
Proč Lsdel v Debugfs nefunguje?