[shell script] - Receber somente alguns parâmetros no unix

7 respostas
jaboot

Olá pessoal,

Vou ser bem técnico: quando envio o comando wc -l, ele me retorna a quantidade de linhas de um arquivo, mais o nome do arquivo.
Só que eu não quero esse nome do arquivo, quero somente o número de linhas. Existe algum jeito de fazer somente isso aparecer?
Estou em um Korn Shell

7 Respostas

latorre

Olá balarini, creio que isso resolva:
wc -l arquivo | awk ‘{print $1}’;

jaboot

latorre,

Muito obrigado, resolveu!

Vou pesquisar mais sobre isso, valeu!

dlt

Você pode usar o wc juntamente com o cut, também. Dá uma olhada no man do cut, que vai resolver seu problema.

peczenyj

q tal assim:

$ sed -n ‘$=’ /etc/passwd
35

jaboot

E eu pensando que o Shell Script era BEM limitado…

T

Nas mãos de um Unix-lover, as linguagens de script (o shell bash, o grep, awk, sed, perl etc.) fazem misérias. É só saber quando parar, e quando é necessário realmente criar um programa mesmo.

No caso do comando do peczenyj, é sempre bom pôr um comentário antes:

#!/bin/bash
# Conta as linhas de um arquivo texto
sed -n '$=' $1

É que “-n” indica ao sed para não imprimir as linhas lidas, “$=” é um comando (veja o “man” do sed) para ir até o fim do arquivo ("$") e então imprimir o número de linhas ("="), e $1 é o nome do arquivo.

dlt

Bela dica e otima explicacao do sed, pessoal.
Acho que o que me assustou mais quando eu quis me aprofundar no bash, foi saber que tambem vou ter que aprender awk e sed. :stuck_out_tongue:

Criado 13 de junho de 2008
Ultima resposta 20 de jun. de 2008
Respostas 7
Participantes 5