Com base no esclarecimento dos comentários,
sed -n '/^ATOM.*H$/!p' input > output
removerá (não imprime) as linhas que começam com "ATOM" e terminam com "H" do arquivo denominado input
e imprimem o restante das linhas no arquivo denominado output
. A sintaxe do sed vai da esquerda para a direita:
-
-n
- não imprime linhas por padrão -
/^ATOM.*H$/
- procure por linhas que começam com ATOM, seguidas por qualquer número de caracteres, terminando ($
) com H -
!p
- linhas de impressão que não correspondem ao padrão acima
Um arquivo de entrada de amostra de:
TITLE Protein in water t= 0.00000
REMARK THIS IS A SIMULATION BOX
ATOM 1 N SER A 107 20.799 63.728 25.985 1.00 0.00 N
ATOM 2 H1 SER A 107 21.658 64.259 25.980 1.00 0.00 H
TITLE Protein in water t= 0.00000H
REMARK THIS IS A SIMULATION BOXH
ATOM 1 N SER A 107 20.799 63.728 25.985 1.00 0.00 N
ATOM 2 H1 SER A 107 21.658 64.259 25.980 1.00 0.00 H
resulta em:
TITLE Protein in water t= 0.00000
REMARK THIS IS A SIMULATION BOX
ATOM 1 N SER A 107 20.799 63.728 25.985 1.00 0.00 N
TITLE Protein in water t= 0.00000H
REMARK THIS IS A SIMULATION BOXH
ATOM 1 N SER A 107 20.799 63.728 25.985 1.00 0.00 N
Uma sintaxe mais direta seria:
sed '/^ATOM.*H$/d' input > output
que diz:
- (linhas de impressão por padrão)
- procure por linhas que começam com ATOM e terminam com H
- delete (não imprima) essas linhas