Estoy buscando a través de una gran base de código, y los espacios en blanco y la tabulación parecen ser bastante molestos. ¿Hay alguna forma de deshacerse de él?
grep -R "something" ./
Por ejemplo, en lugar de:
foo/bar.cpp: qwertyuiosomethingoi
foo/bar/baz.h: 43rfsgsomethingdrfg
bar/bar.cpp: 1234edwssomethingczd
Quiero obtener algo como:
foo/bar.cpp: qwertyuiosomethingoi
foo/bar/baz.h: 43rfsgdsomethingrfg
bar/bar.cpp: 1234edwssomethingczd
O mejor:
foo/bar.cpp: qwertyuisomethingooi
foo/bar/baz.h: 43rfsgdrsomethingfg
bar/bar.cpp: 1234edwssomethingczd
command-line
text-processing
grep
sed
Andrés
fuente
fuente

Respuestas:
Crear archivos de prueba
producir color glorioso completo :)
salida (ejecútelo para obtener el color).
Probado en
gnome-terminal,konsole,terminator,xtermfuente
\tpersonajes\t? ... No está usando\tpara un separador, está usando $ '\ x01' (hex 01) ... ¿o quieres decir algo más?\t, así como espacios en blanco principales\s[[:space:]]... Si solo desea considerar TAB y SPACE, y no todos los espacios en blanco, use esto en su lugar:[ \t]Puedes eliminarlos usando
sedEso eliminará los espacios en blanco iniciales de la salida
fuente
Suponiendo que está buscando un patrón
re(una expresión regular básica) en un archivo, y desea eliminar los espacios en blanco iniciales de todas las líneas coincidentes:(en realidad, esto elimina primero todos los espacios en blanco iniciales y luego busca el patrón, pero el resultado es el mismo)
Para procesar posteriormente el
grepresultado (como en su pregunta editada):El patrón
[[:blank:]]*coincide con cero o más espacios o pestañas.fuente
--color=alwaysesta expresión regular no funciona: /archivo sed -n '/ pattern / p' | sed -r "s / \ s + // g"
fuente