
Quiero eliminar todos los espacios de un archivo, excepto cada línea que comience con el mismo patrón (el patrón es "ORGANISMO").
Aporte:
Cat; Dog; Squirrel
ORGANISM Animalus terrus
Sequence: ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
Producción:
Cat;Dog;Squirrel
ORGANISM Animalus terrus
Sequence:ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
No más espacios en ninguna línea excepto la línea que comienza con los caracteres "ORGANISMO".
Respuesta1
sed '/^ORGANISM/!s/ //g' /path/to/input
Esto eliminará todos los espacios en todas las líneas que no lo hacen.noEmpezar con ORGANISM
.
Respuesta2
sed -e '/^ORGANISM/n' -e 's/ //g' < input > output
La primera expresión salta a la n
línea ext si ésta comienza con ORGANISM
, y si eso no sucedió, s
sustituye todos los espacios por nada ( g
lobalmente)
Respuesta3
Aquí hay una versión de Perl que utiliza una búsqueda anticipada negativa (?!ORGANISM)
para determinar si necesitamos realizar una sustitución. -p
banderas permite la impresión automática
$ perl -pe 's/[[:blank:]]//g if /^(?!ORGANISM).*/' input.txt
Cat;Dog;Squirrel
ORGANISM Animalus terrus
Sequence:ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT