gera um valor variável usando o comando echo [duplicate]

1

Eu quero saída número de linhas no arquivo de texto.Então eu estou usando o comando echo mas estou recebendo o nome do arquivo junto com o número de linhas quando eu executar o seguinte código:

echo "$page" > t
total="$(wc -l t)"
echo "$total"

Saída:     162 t

Nota: o número de linhas no arquivo "t" é apenas 162.

    
por Abhinav Moudgil 10.12.2014 / 04:20

2 respostas

0

Sempre que você usar wc -l FILENAME , ele sempre imprimirá o nome do arquivo junto com um número.

wc -l /etc/hosts
34 /etc/hosts

Para NÃO imprimir o nome do arquivo, você pode usar cat e canalizar sua saída para wc -l da seguinte forma:

cat /etc/hosts | wc -l
34

Assim, no seu caso, se você pudesse alterar a variável total para total=$(cat t | wc -l) , você deve obter apenas um número salvo na variável total .

Por outro lado, você pode usar cut ou awk para extrair a parte numérica da parte wc -l t da seguinte forma:

wc -l t | cut -d " " -f1

wc -l t | awk '{print $1}'

    
por 10.12.2014 / 04:43
1

Eu não sei se há um sinalizador para impedir que o wc imprima o nome do arquivo, mas com cut você pode simplesmente cortar seu número:

wc -l filename  | cut -d' ' -f1
    
por 10.12.2014 / 04:27