O que eu obtenho é que você não quer nenhum espaço inicial, como a linha 2 ou mais que um espaço, porque você está excluindo a linha # 4 que tem um espaço.
então eu sugiro:
egrep -i '^\s*pattern' file.txt | grep -v '^\spattern'
ou usando um único awk
:
awk 'tolower($0) ~ /^\s*pattern/ && !/^\spattern/ ' file.txt
-
\s
como espaço, você pode alterá-lo com blank
, se desejar.
-
egrep -i '^\s*pattern' file.txt
primeiro nós começamos todas as linhas iniciadas com ou sem qualquer tempo levando espaço seguindo por padrão.
-
grep -v '^\spattern'
: excluímos os que contêm exatamente um espaço principal.
O exemplo acima funciona em um arquivo sem numeração, se o seu arquivo contiver números iniciais, use este:
egrep -i '\s*pattern' file.txt | grep -v '\spattern'
ou para awk
:
awk 'tolower($0) ~ /\s*pattern/ && !/\spattern/ ' file.txt