Excluindo linhas com padrões diferentes em um arquivo

1

Preciso excluir linhas com padrões diferentes,

Por exemplo

sed '/Paris/d' file.txt |  cat -s
sed '/London/d' file.txt |  cat -s
sed '/Rome/d' file.txt |  cat -s
sed '/Pais/d' file.txt |  cat -s

Como fazer isso usando uma matriz de nome de cidades e apenas digitar uma vez o comando sed?

    
por Enric Agud Pique 07.11.2014 / 08:57

2 respostas

2

Você pode usar sed da seguinte maneira:

sed '/paris\|london\|rome\|pais/Id' cities

O I indica que não corresponde ao caso O d significa excluir todas as linhas correspondentes no espaço padrão.

    
por 07.11.2014 / 09:26
0

usando o awk:

awk '{if(match(tolower($0),/(paris|london|rome)/)==0) print $0}' file > file

tolower converterá a linha inteira em minúscula
match retornará a posição inicial da substring se corresponder a mais 0

awk imprimirá somente a linha que não contém Paris, Londres, Roma e salva no mesmo arquivo

    
por 08.11.2014 / 07:05

Tags