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.
ls
saí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