Retornar apenas o número da linha [RESOLVIDO]

1. Retornar apenas o número da linha [RESOLVIDO]

willian camargo souza
mancadawill

(usa Outra)

Enviado em 29/10/2018 - 11:10h

Sou iniciante em shell e to fazendo um script para colocar linux no AD, já consegui fazer algumas coisas, mas para deixar mais "redondo" preciso de alguma função ou método que retorne apenas o número da linha, até achei algumas coisas como por exemplo o:

LINHA=`cat -n /scripts/texto | grep <palavra>` 


porém com esses comandos citados consigo retornar o número da linha mas concatenado com a linha inteira, tentei fazer algumas manipulações da variável, como:

SAIDA= `${LINHA:1}` 


mas a linha acima continua retornando a mesma coisa.


  


2. MELHOR RESPOSTA

Fabiano
fpires

(usa Debian)

Enviado em 29/10/2018 - 13:17h

mancadawill escreveu:

Sou iniciante em shell e to fazendo um script para colocar linux no AD, já consegui fazer algumas coisas, mas para deixar mais "redondo" preciso de alguma função ou método que retorne apenas o número da linha, até achei algumas coisas como por exemplo o:

LINHA=`cat -n /scripts/texto | grep <palavra>` 


porém com esses comandos citados consigo retornar o número da linha mas concatenado com a linha inteira, tentei fazer algumas manipulações da variável, como:

SAIDA= `${LINHA:1}` 


mas a linha acima continua retornando a mesma coisa.


Utilize:
LINHA=`grep -n <palavra> /scripts/texto | cut -f1 -d:` 


Nota: eu acho mais "limpo" utilizar $() em vez de ` `. Então o comando ficaria assim:
LINHA=$(grep -n <palavra> /scripts/texto | cut -f1 -d:) 


mas o funcionamento é o mesmo, é mais uma questão de gosto.

3. Re: Retornar apenas o número da linha [RESOLVIDO]

willian camargo souza
mancadawill

(usa Outra)

Enviado em 29/10/2018 - 13:36h

fpires escreveu:

mancadawill escreveu:

Sou iniciante em shell e to fazendo um script para colocar linux no AD, já consegui fazer algumas coisas, mas para deixar mais "redondo" preciso de alguma função ou método que retorne apenas o número da linha, até achei algumas coisas como por exemplo o:

LINHA=`cat -n /scripts/texto | grep <palavra>` 


porém com esses comandos citados consigo retornar o número da linha mas concatenado com a linha inteira, tentei fazer algumas manipulações da variável, como:

SAIDA= `${LINHA:1}` 


mas a linha acima continua retornando a mesma coisa.


Utilize:
LINHA=`grep -n <palavra> /scripts/texto | cut -f1 -d:` 


Nota: eu acho mais "limpo" utilizar $() em vez de ` `. Então o comando ficaria assim:
LINHA=$(grep -n <palavra> /scripts/texto | cut -f1 -d:) 


mas o funcionamento é o mesmo, é mais uma questão de gosto.


Opa, funcionou direitinho. vlw


4. Re: Retornar apenas o número da linha [RESOLVIDO]

Fabiano
fpires

(usa Debian)

Enviado em 30/10/2018 - 15:02h

mancadawill escreveu:

fpires escreveu:

mancadawill escreveu:

Sou iniciante em shell e to fazendo um script para colocar linux no AD, já consegui fazer algumas coisas, mas para deixar mais "redondo" preciso de alguma função ou método que retorne apenas o número da linha, até achei algumas coisas como por exemplo o:

LINHA=`cat -n /scripts/texto | grep <palavra>` 


porém com esses comandos citados consigo retornar o número da linha mas concatenado com a linha inteira, tentei fazer algumas manipulações da variável, como:

SAIDA= `${LINHA:1}` 


mas a linha acima continua retornando a mesma coisa.


Utilize:
LINHA=`grep -n <palavra> /scripts/texto | cut -f1 -d:` 


Nota: eu acho mais "limpo" utilizar $() em vez de ` `. Então o comando ficaria assim:
LINHA=$(grep -n <palavra> /scripts/texto | cut -f1 -d:) 


mas o funcionamento é o mesmo, é mais uma questão de gosto.


Opa, funcionou direitinho. vlw


Não se esqueça de marcar a resposta como melhor.


5. Re: Retornar apenas o número da linha [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 30/10/2018 - 22:06h

mancadawill escreveu:

Sou iniciante em shell e to fazendo um script para colocar linux no AD, já consegui fazer algumas coisas, mas para deixar mais "redondo" preciso de alguma função ou método que retorne apenas o número da linha, até achei algumas coisas como por exemplo o:

LINHA=`cat -n /scripts/texto | grep <palavra>` 


porém com esses comandos citados consigo retornar o número da linha mas concatenado com a linha inteira, tentei fazer algumas manipulações da variável, como:

SAIDA= `${LINHA:1}` 


mas a linha acima continua retornando a mesma coisa.


Vi que está como resolvido, mas segue uma opção com somente um comando...
awk '/palavra/ {print NR}' arquivo 


Marcelo Oliver






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts