Você pode find
find -type f -name "Account*"
Alternativa 2 (isso pode incluir também a pasta)
ls -1 Account*
Alternativa 3 (grep, isso também pode incluir pasta)
ls -1 | grep -E "^Account"
Eu tenho muitos arquivos em uma pasta, por exemplo
Kiran.txt
Kiran1.txt
Kiran221.txt
Kiran144.txt
Time.csv
Timer.csv
Timer2.csv
Timer444.csv
Timer266.csv
Account.sh
Account3.sh
Account3333.sh
Account3333.sh
Account333333.sh
Nesse diretório, quero saber como usar grep
para exibir arquivos com base em parte do nome do arquivo - por exemplo, aqueles que começam com "Conta" ou aqueles que terminam em ".sh".
Use um curinga ( O que é esse curinga? ):
ls *.sh
O *
corresponderá a qualquer coisa antes do final .sh
que você deseja. Use as outras opções ls
para exibição, por exemplo -l
para torná-lo uma listagem longa. Veja man ls
para mais informações sobre o que você pode fazer com isso.
Observe que ls
também listaria qualquer diretório que terminasse com .sh
, não apenas arquivos.
Você também pode usar find
para superar esse problema.
find . -type f -maxdepth 1 -name "*.sh"
Este comando apenas lista arquivos "reais". Usar find é algo que eu recomendaria se você quiser fazer algo com os arquivos encontrados depois. Você pode fazer isso com a opção -exec
.
A solução padrão é um pipe:
ls | grep ^Account
Com algo tão simples como "Arquivos começando com a conta", os globs também funcionariam:
ls Account*
mas, em geral, um grep é mais poderoso e não corre o risco de transbordar o comprimento máximo da linha de comando se a sua pasta estiver realmente, realmente cheia.
Use o seguinte comando
ls *.sh
Tags command-line linux globbing