Eu tento procurar por linhas que começam com "1" usando
ls -1 | grep ^1*
mas retorna linhas que não começam com 1. O que estou perdendo aqui?
Eu tento procurar por linhas que começam com "1" usando
ls -1 | grep ^1*
mas retorna linhas que não começam com 1. O que estou perdendo aqui?
Respostas:
Embora isso não responda à sua pergunta, esta é uma solução melhor para o que parece ser seu objetivo:
ls -ld 1*
Você pode usar um shell glob para listar todos os arquivos que começam com 1. Observe que *tem um significado diferente no globbing do shell do que nas expressões regulares.
* é um curinga que significa "0 ou mais de qualquer caractere". O significado de regex é explicado na resposta de otokan.
^ 1. * corresponde à linha inteira, ou exatamente como dito acima, ^ 1 obteve a string contida na linha.
estilos diferentes de regex usam símbolos diferentes que representam caracteres, algumas opções especificam qual estilo você deseja. e opções diferentes especificam se você deseja corresponder a linha inteira, ou apenas parte dela, ou toda a entrada como uma sequência.
lssaída, terá problemas se os nomes de arquivos contiverem caracteres estranhos, como novas linhas ... Muitos outros comandos (de alguma formals, pelo menos não a versão que eu tenho que verificar) tem uma opção para fornecer saída separada nula, com a qual você pode processar com segurançagrep -z