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