Comando echo após um cat retorna campos e não a linha completa

1. Comando echo após um cat retorna campos e não a linha completa

Eduardo Vieira Mendes
vodooo

(usa Debian)

Enviado em 25/03/2008 - 14:47h

Por favor, alguém pode me informar onde eu poderia estar errando neste script abaixo?

Estou tentando rodar o seguinte comando para ele executar outro comando a cada linha:

Ex.:

for i in `cat /var/log/secure` ; do

#Conta quantos campos tem a linha
campos=`echo $i | wc -w`

#Informa quantos campos são em cada linha
echo $campos

done

O problema é que no echo $i ele está me passando cada campo separado, e não a linha inteira!


  


2. Use File Descriptor

Rodrigo Ferreira Valentim
engos

(usa openSUSE)

Enviado em 25/03/2008 - 15:29h

Nunca usei dessa forma quando precisei tratar toda uma linha de arquivo, normalmente só faço isso para ler uma informação em determinada coluna, ou algo do tipo.

Se você quer ler um arquivo com shell script recomendo que seja com File Descriptor, veja como eu faria:


#!/bin/bash

FILE="/var/log/secure"
exec 3<&0
exec 0<$FILE
while read i; do
campos=`echo $i | wc -w`
echo $campos
done

exec 0<&3

exit 0




3. Obrigado

Eduardo Vieira Mendes
vodooo

(usa Debian)

Enviado em 24/06/2008 - 15:09h

Deu certo!

Desculpe a demora em responder!

Obrigado e abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts