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,6kvalifikovat?), 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, jakomikeservpozná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?