Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

411
Views
Grep no muestra color incluso cuando se usa --color=always

Grep generalmente muestra texto resaltado en rojo, que es lo que quería, pero esta vez no parece hacer eso sin importar lo que haga. Estoy haciendo esto desde un contenedor Docker ( nginx:1.19-alpine más específicamente) e instalé Bash 5.1 usando RUN apk add bash . Luego agregué un archivo de configuración ~/.bashrc con este contenido:

 # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac force_color_prompt=yes color_prompt=yes if [ "$color_prompt" = yes ]; then PS1='🐳 ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@server-nginx\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='🐳 ${debian_chroot:+($debian_chroot)}\u@server-nginx:\w\$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@server-nginx: \w\a\]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases alias ls='ls --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' # colored GCC warnings and errors #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF'

La cuestión es que $ ls muestra una salida coloreada. Pero cuando trato de canalizarlo a través de grep, todavía es blanco y negro.

 // Directories have colors!! $ ls // No color highlighting here $ echo "baba" | grep --color=always ba // No colors here either $ ls | grep bin

La misma configuración exacta en una imagen de Docker diferente funcionó perfectamente ( php:7.4-fpm y node:14 ), por lo que tal vez haya algo específico sobre la imagen nginx:1.19-alpine que no muestra colores para grep.

PS printf '%q\n' "$GREP_COLORS" "$GREP_COLOR" imprime este resultado:

 $ printf '%q\n' "$GREP_COLORS" "$GREP_COLOR" ms=01\;33 ''
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Después de mucho investigar, finalmente encontré la solución. La versión de grep que vino con esta imagen de Docker en particular ( nginx:1.19-alpine ) era una especie de "versión de grep de caja ocupada". De todos modos, actualizar grep funcionó:

 // Inside of Dockerfile added this RUN apk add --no-cache --upgrade grep

Ahora grep muestra una salida coloreada. ¡Uf! Espero que esto ayude a otros que puedan encontrarse con este mismo problema.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!