obtém o tamanho do arquivo e a contagem de linhas ao mesmo tempo

4

Estou procurando uma maneira de listar todos os arquivos em um diretório, com seu tamanho e uma contagem de linha. No momento, estou usando stat -c \"%s %n\" /directory/* para obter nomes e tamanhos de arquivos, e sei que posso usar find /directory/ -type f -exec wc -l {} + para obter o nome do arquivo e a contagem de linhas, mas há alguma maneira de obter os dois ao mesmo tempo?

    
por jmatula 20.02.2015 / 17:21

5 respostas

6

Você está quase lá.

find directory -type f -exec wc -lc {} +

irá obter o nome do arquivo, contagem de linha, e c contagem de caracteres .

Estritamente falando, -c (a.k.a. --bytes ) é documentado como contando bytes , que é provavelmente o que você quer. Existe também uma opção -m (a.k.a. --chars ) para contar “caracteres”. A partir da escolha da letra da opção m , acho que isso conta caracteres de multibyte; por exemplo, caracteres Unicode. Há também uma opção -w para realmente contar palavras.

    
por 20.02.2015 / 17:54
2

wc pode fornecer contagens de bytes e de linhas:

find /directory/ -type f -exec wc -l -c {} +

Usar find também é preferível a um argumento curinga ( stat ... directory/* ), porque o último falhará quando houver muitos arquivos no diretório para que os nomes caibam em um único comando.

    
por 20.02.2015 / 17:57
1

podemos simplesmente expor o seguinte comando no diretório

wc -lc *
    
por 05.09.2016 / 13:24
0
wc -c -l file1 file2 ... 

as respostas devem ter > = 30 caracteres de comprimento:)

    
por 20.02.2015 / 17:47
0
for i in 'find \directory-name\ -type f'
do
echo "Printing line count and size of $i"
cat $i | wc -l
du -sh $i
done

Acho que isso ajudará você a conseguir o que deseja.

    
por 20.02.2015 / 17:36

Tags