Nada, há um limite no número de argumentos que o bash pode lidar. Fazer
ls | grep '\.prj$' | wc -l
Ok, isso é estranho. Eu estou usando este código,
ls *.prj
Para listar todos os arquivos com a extensão .prj no diretório, mas estou recebendo este erro,
bash: / bin / ls: Lista de argumentos muito longa
Eu eventualmente gostaria de obter a contagem de arquivos e eu estava usando,
ls * .prj | wc -l
Mas mesmo este comando está dando o mesmo erro. Alguma ideia de onde estou errado?
Nada, há um limite no número de argumentos que o bash pode lidar. Fazer
ls | grep '\.prj$' | wc -l
Use o comando find
em vez
find . -name "*.prj"
Você também pode combinar os comandos com o find
find . -name "*.prj" -exec COMMAND {} \;
Espero que isso ajude.
A análise da saída de ls
não é confiável . Ele provavelmente funcionará no seu caso, mas ls
manipula caracteres não imprimíveis. Aqui está uma maneira totalmente confiável de contar os arquivos correspondentes a uma determinada extensão. Este trecho de shell cria uma matriz contendo os nomes dos arquivos e, em seguida, imprime o número de elementos na matriz.
a=(*.prj)
echo ${#a[@]}
Tags ls file-format