Pular para o conteúdo

Retornar apenas o número da linha [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

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

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.

Responder tópico

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

Melhor resposta

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]

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]

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]

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

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder