Estou tentando excluir certas entradas de URLs (usando IPs em vez de nomes de domínio) em uma lista com um comando grep, especificamente para remover todas as entradas que começam https://
e terminam com :80
. no entanto, entradas com https://
e :8080
também estão sendo incluídas.
Meu comando grep é:
egrep -v "https://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}:80"
Como posso forçar o grep a apenas excluir :80
e não:8080
Um exemplo do conteúdo do arquivo de entrada é:
http://10.10.46.1:80
http://10.10.48.67:8080
http://10.10.48.67:443
https://10.10.46.1:80
https://10.10.48.67:8080
https://10.10.48.67:443
Basta ser um pouco mais específico em seu
grep
comando. Se os IPs forem a única coisa na linha, então:80
serão os últimos 3 caracteres, use:Ou, se houver espaço em branco após o
80
, use:Se
:80
não for a última coisa na linha, apenas grep para casos em que há um espaço depois:Se o último caractere não for um espaço, adapte para se adequar à sua entrada.
Você pode condensar seu regex aproveitando a regularidade dos dados: