digamos, tengo el siguiente resultado de ls:
$ ls -lAhF /bin
-rwxr-xr-x 1 root root 905K Apr 10 2010 bash*
-rwxr-xr-x 3 root root 31K Dec 26 2011 bunzip2*
-rwxr-xr-x 1 root root 505K Nov 15 2010 busybox*
-rwxr-xr-x 3 root root 31K Dec 26 2011 bzcat*
lrwxrwxrwx 1 root root 6 Jun 24 2012 bzcmp -> bzdiff*
...
Estoy buscando una manera, cómo podría colorear la segunda columna. Sé cómo usar sed para colorear cualquier patrón, pero no sé cómo colorear una columna específica. Básicamente, necesito insertar '\033[0;31m'después del primer espacio y '\033[0m'enfrente del segundo espacio. O tal vez hay una manera mucho más elegante?
text-processing
colors
usuario1968963
fuente
fuente

ls --color -l | sed -e $'s/ *[^ ]* /\033[0;31m&\033[0m/'Respuestas:
Con GNU
grepsiempre que haya sido construido con soporte PCRE :Con
sed:Tenga en cuenta que el uso
setafasume que el terminal admite secuencias de escape de color ANSI, por lo que también podría codificarlo, lo que también lo haría menos detallado. Aquí conksh93(tambiénbashyzsh) sintaxis:Para generalizar a la enésima columna:
Referencias
fuente
grep -Pes fantastico. Muchas gracias.¿Algo como esto?
Editar: use los
tputsubcomandos adecuados .fuente
$1Sin embargo, la configuración romperá la alineación de la columna.rmsoes cancelarsmsosin embargo (modo destacado), nobold. En muchos terminales (tput rmsono se cancelatput bold).