expressão de procura do linux em [abc]

0

Eu tenho várias linhas como:

[abc] aa abc yy

[abc] aa fff yy

abc yy ddd yy

E eu quero pesquisar e obter apenas as linhas com expressão [abc] entre os colchetes e não apenas as com abc .

Obrigado.

    
por pKlarc 11.05.2017 / 15:29

3 respostas

1

Como os colchetes têm um significado especial na sintaxe da expressão regular do grep, você precisa escapar deles

grep '\[abc\]' file

ou especifique a correspondência de cadeia simples usando -F ou --fixed-strings

grep -F '[abc]' file

Veja man grep

-F, --fixed-strings
       Interpret PATTERN as a list of fixed strings (instead of regular
       expressions), separated by newlines,  any  of  which  is  to  be
       matched.
    
por steeldriver 11.05.2017 / 15:33
0

Se o texto a ser pesquisado for armazenado em um arquivo chamado FILE, altere os diretórios usando cd para o diretório que contém FILE e execute este comando:

grep \[abc\] < FILE

Este comando tem um estilo minimalista porque não requer nenhum caractere de aspas extras e não tem nenhum uso inútil de cat .

  • Em vez de cat , ele usa um único colchete angular esquerdo < .
  • Em vez de usar caracteres de aspas, os colchetes esquerdo e direito são ambos escapados para serem interpretados literalmente como caracteres de colchetes.
por karel 11.05.2017 / 15:36
0

use grep:

grep '\[abc\]' filename
    
por tso 11.05.2017 / 15:32