grep
procura o primeiro argumento (o padrão) nos arquivos transmitidos na linha de comando ou stdin
se nenhum arquivo for passado.
Sem a cota, seu shell expandirá lect*
para todos os arquivos no diretório que começam com lect
. Seu comando será então:
grep lect1.txt lect2.doc lect3.doc
, o que significa que procura o texto lect1.txt
nos dois .doc
arquivos . A menos que um dos arquivos .doc
tenha a frase lect1.txt
, ele não retornará nada. Para ser mais preciso, ele procurará lect1
seguido por qualquer caractere (o .
) seguido por txt
, então também encontrará lect1-txt
e lect1xtxt
etc)
Em seu segundo exemplo, você citou "lect.*"
para que o shell não o expanda e seja passado como é para grep
. Com apenas um padrão passado como argumento, grep
pesquisará os nomes de arquivos passados em stdin
para o padrão, que é o que você é depois que eu acredito.