Eu tenho um arquivo de texto:
deiauk 1611516 afsdf 765
minkra 18415151 asdsf 4152
linkra sfsfdsfs sdfss 4555
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
deiauk 1611516 afsdf ddfgfgd
luktol1 4545 4 9
luktol 1
e eu quero combinar exatamente deiauk
. Quando eu faço isso:
grep "deiauk" file.txt
Eu recebo este resultado:
deiauk 1611516 afsdf 765
deiauk1 sdfsfdsfs 1561 51
deiauk2 115151 5454 4
mas eu só preciso disso:
deiauk 1611516 afsdf 765
deiauk 1611516 afsdf ddfgfgd
Eu sei que há uma -w
opção, mas então minha corda tem que machucar toda a linha.
grep -w
? (Essa opção é exatamente para esse propósito e funciona para mim.) - Nota: a opção-x
corresponde à linha inteira.deiauk
/ " Eu só preciso disso:deiauk 1611516 afsdf 765
" - de que você precisa?"Respostas:
Experimente um dos seguintes:
fonte
*
comando vi / vim em palavras.org.apache.avro avro
recebidoorg.apache.avro avro+mapred
(tentado com *)Tente isso com o GNU
grep
e marque os limites das palavras com\b
:Resultado:
Consulte: http://www.regular-expressions.info/wordboundaries.html
fonte
echo "Enter login: " $vard
grep -E "$\bvard\b" file.txt
grep "\b${vard}\b" file.txt
read
:read -p "Enter login: " vard; grep "\b${vard}\b" file.txt
Se o seu
grep
suporte-P
(PCRE), você pode:fonte
Dependendo dos dados reais, você pode procurar a palavra seguida por um espaço:
Se você sabe que precisa estar no início da linha, verifique:
fonte
^
- mas todas as outras respostas funcionam… (continua)