Como procurar por linhas específicas no Linux? [duplicado]

4

Recentemente recebi um erro informando que havia um problema na linha 52. Estou tentando aprender qual é o melhor método para localizar linhas em vez de realmente contá-las.

No Windows, eu costumava usar o Notepad ++ que exibia as linhas diretamente à esquerda, para que os usuários pudessem facilmente rolar para a linha específica que eles estavam procurando - No entanto, eu não vejo essa opção no Linux.

Talvez seja necessário um determinado aplicativo?

ATUALIZAÇÃO: atualmente não consigo abrir loja de software e o único editor de texto que tenho é o padrão nano e gedit . Então, por favor, restrinja suas respostas a soluções que não me envolvam instalando software.

** NOTA: ** Não estou procurando por um 'String' de algum tipo. Estou procurando encontrar rapidamente a linha NUMBER na qual a string aparece.

    
por dlundy1 18.04.2015 / 05:27

6 respostas

7

Se você está procurando uma abordagem de GUI, você pode exibir números de linha no editor de texto padrão, gedit. Para fazer isso, vá para Editar - > Preferências e marque a caixa que diz "Exibir números de linha".

Você também pode pular para um número de linha específico usando Ctrl + I .

    
por Chuck R 18.04.2015 / 05:37
7

Vamos criar um arquivo de teste;

$ seq 100 >file

Agora, vamos exibir a linha 52:

$ sed -n 52p file
52

Ou:

$ awk 'NR==52' file
52

Ou, se você tiver o arquivo aberto em vim , você pode digitar 52G para ir para a linha 52.

Usando o nano

Suponha que seu arquivo seja chamado de file.txt . Para editar o arquivo em nano com linha, coluna e contagem de caracteres exibidos, execute

nano -c file.txt

É assim que o nano se parece com o cursor na linha 7 de um arquivo de 21 linhas:

    
por John1024 18.04.2015 / 05:35
5

Você pode exibir o arquivo com less . Use less -N para exibir números de linha, digite " 52 " para less para chegar à linha 52. Consulte man less .

Você também pode abrir o arquivo com o editor vim (tipo vim thefile ), depois digitar " :52 " para acessar a linha 52. Consulte man vim

    
por waltinator 18.04.2015 / 05:35
5

Em vi ou vim

:set nu ativa números de linha

:set nonu desativa os números de linha

52gg vai para a linha 52

52G também vai para a linha 52

    
por jasonrhaas 18.04.2015 / 05:58
1

Olá a todos, acho que muitos de nós pensamos sobre isso. Enquanto continuei lendo seus comentários e respostas, percebi que o editor de texto básico informa em qual linha e coluna você está se você olhar na parte inferior da janela. : /

Eu me sinto bobo lol

    
por dlundy1 18.04.2015 / 06:18
0

Uma boa ferramenta para o trabalho é grep . Com grep -i -n 'string' , você pode pesquisar por uma string específica e descobrir em que linha ela está.

Suponha que o compilador java relate um erro que na linha System.out.println("Hello World") eu não tenha ponto e vírgula ou algo parecido.

O que eu posso fazer é cat helloworld.java | grep -i -n 'hello world'

E isso me retornaria 7: System.out.println("Hello World!") , onde 7: é o número da linha com dois-pontos como separador.

Alternativamente, você pode iniciar o nano com o cursor em uma linha e coluna em particular como nano +7,0 helloworld.java (e, a propósito, essa é uma das primeiras opções no man nano )

    
por Sergiy Kolodyazhnyy 18.04.2015 / 09:08