[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
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
thingol
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.