Como remover um número específico de um arquivo?

0

Eu tenho um arquivo de texto com o seguinte conteúdo

DESCRIPTION  ENABLED
 Tracker_EG32747257_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 100000, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0340 seconds

DESCRIPTION  ENABLED
 Tracker_EG38863805_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 100000, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0300 seconds

DESCRIPTION  ENABLED
 Session_EG32747257_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 1, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0270 seconds

DESCRIPTION  ENABLED
 Session_EG38863805_0418_0618, {NAME => d, DATA_BLOCK_ENCODING => NONE, BLOOMFILTER => ROW, REPLICATION_SCOPE => 0, COMPRESSION => LZ4, VERSIONS => 1, MIN_VERSIONS => 0, TTL => 2419200 SECONDS (28 DAYS), KEEP_DELETED_CELLS => false, BLOCKSIZE => 65536, IN_MEMORY => false, BLOCKCACHE => true} true

1 row(s) in 0.0260 seconds....

Agora, quero remover todas as palavras "DESCRIPTION" e todas as palavras 1 (nenhuma palavra que contenha 1)

Estou usando este comando

sed 's/\(DESCRIPTION\|<1>\)//g'

Ele está removendo todas as palavras DESCRIPTION, mas também removendo todos os 1 dígitos do arquivo.

    
por Sonika Suman 22.05.2018 / 07:06

2 respostas

1

Você parece estar usando o GNU sed (POSIX sed não define \| ). Então você também pode usar os limites de palavras perlish, mas precisa escapar deles para tornar <> special:

sed 's/\(DESCRIPTION\|\<1\>\)//g'
    
por 22.05.2018 / 13:29
0

Tente:

sed 's/^\(\<DESCRIPTION\>\|\<1\>\)//' infile

desde que você usou a opção g lobal e remove todas as ocorrências de 1, assim como fará com DESCRIPTION também. Como acima, você precisa iniciar as linhas anchor ^ para remover os 1s e DESCRIPTION somente se a linha começar com aqueles.

    
por 22.05.2018 / 07:20