The problem with this command is that when I use ^ac$ the command interprets it as starting with 'ac' instead of starting with 'a'.
Não realmente. Como você usou a $
anchor , está pesquisando as linhas que terminam logo após a string ac
, portanto, apenas linhas contendo exatamente ac
e nenhum outro caractere são correspondidos.
Para permitir qualquer caractere entre essas letras, use a regex para qualquer contagem de qualquer caractere: .*
(Ou se você quiser permitir apenas um caractere como em abc
no exemplo, use .
sem quantificadores como *
.)
A propósito, você pode simplesmente deixar de fora a opção -E
para este regex, já que ele não envolve qualquer sintaxe que seja diferente nessas duas variantes.
Então o resultado é:
grep '^a.*c$' newfile