Pourquoi grep ne parvient-il pas à faire correspondre un signe égal?


0

Cela marche:

$ sudo gitlab-runner list 2>&1 | grep 'Token'
Python 2.7.14                                       Executor=docker Token=bccdbf31ef6bc74b2ae4980d8eccea URL=http://something
Docker                                              Executor=docker Token=5b06f034f48d3543848d7d209ce80c URL=http://something
Ansible                                             Executor=docker Token=e2215647f2c9981c8d74abaf324983 URL=http://something

Cela ne veut pas:

$ sudo gitlab-runner list 2>&1 | grep 'Token='
(empty)

Pourquoi?

J'utilise:

$ grep --version
grep (GNU grep) 2.25
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.

@Barmar on SO vous a dit que le =signe peut être différent de ce que vous attendez, peut-être un caractère Unicode. Quelle est la sortie de sudo gitlab-runner list 2>&1 | grep -o 'Token..' | od -c?
Gilles Quenot


Réponses:


1

Copier et coller votre sortie d’en haut dans grep Token = fait passer les lignes directement, de sorte que la sortie de gitlab-runner puisse contenir d’étranges caractères non imprimables, entre le "Token" et le "=", qui ont été nettoyés par votre pâte dans superuser.com.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.