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'
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.
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'
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.
Tags text-processing awk sed