O * corresponderá a zero ou mais do caractere anterior ou padrão.
Isso significa que - * amount corresponderá a
-
- amount -
- amount -
- amount - (etc.)
Para corresponder os números, como você os escreveu, use - [0-9,]+ amount como padrão. O + forçará pelo menos uma correspondência da expressão regular anterior e [0-9,] corresponderá a qualquer dígito ou vírgula.
Dado o seguinte arquivo:
- 0 amount
- 122,000,000 amount
- 50,000 amount
- amount
- amount
- some amount
Isso funcionará:
$ grep -E -e '- [0-9,]+ amount' file
- 0 amount
- 122,000,000 amount
- 50,000 amount
O -E é necessário porque + é uma expressão regular estendida, e o -e é necessário porque senão o - no padrão seria interpretado como uma opção para grep ( -e significa a próxima coisa é uma expressão regular para grep se aplicar à sua entrada).
Você também pode ancorar o padrão no início e no final da linha:
$ grep -E '^ - [0-9,]+ amount$' file
Isso significa que o -e não é mais necessário e garantirá que a linha comece com um espaço seguido pelo traço e o número etc. como antes. A string amount deve ser a última coisa na linha (ancoramos a palavra ao final da linha com $ ).