sed '/^ORGANISM/!s/ //g' /path/to/input
Isso removerá todos os espaços em todas as linhas que não iniciam com ORGANISM
.
Eu quero remover todos os espaços de um arquivo, exceto de cada linha que começa com o mesmo padrão (o padrão é "ORGANISMO").
Entrada:
Cat; Dog; Squirrel
ORGANISM Animalus terrus
Sequence: ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
Saída:
Cat;Dog;Squirrel
ORGANISM Animalus terrus
Sequence:ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
Não há mais espaços em qualquer linha, exceto a linha que começa com os caracteres "ORGANISMO".
sed -e '/^ORGANISM/n' -e 's/ //g' < input > output
A primeira expressão vai para a linha n
ext se esta começar com ORGANISM
, e se isso não aconteceu, s
ubstitute todos os espaços com nada ( g
lobally)
Aqui está uma versão perl usando lookahead negativo (?!ORGANISM)
para descobrir se precisamos realizar a substituição. -p
flags permite impressão automática
$ perl -pe 's/[[:blank:]]//g if /^(?!ORGANISM).*/' input.txt
Cat;Dog;Squirrel
ORGANISM Animalus terrus
Sequence:ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
Tags text-processing