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.
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?
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
Tags bash