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
,xterm
fuente
\t
personajes\t
? ... No está usando\t
para 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
sed
Eso 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
grep
resultado (como en su pregunta editada):El patrón
[[:blank:]]*
coincide con cero o más espacios o pestañas.fuente
--color=always
esta expresión regular no funciona: /archivo sed -n '/ pattern / p' | sed -r "s / \ s + // g"
fuente