Match Gyldige IP-adresser med Grep eller Perl: Sådan Gør Du

Hvordan kan en gyldig IP-adresse med præcis 4 oktetter matches i en fil ved hjælp af grep eller en en-linjers Perl-syntaks, uden at matche adresser med flere end 4 oktetter?

For at matche en gyldig IP-adresse med præcis 4 oktetter kan du bruge enten grep med udvidede regulære udtryk eller en en-linjers Perl-syntaks. Begge metoder sikrer, at kun gyldige IP-adresser matches og undgår adresser med flere end 4 oktetter.

Sådan matcher du en gyldig IP-adresse med præcis 4 oktetter ved hjælp af grep eller en en-linjers Perl-syntaks

For at matche en gyldig IP-adresse med præcis 4 oktetter uden at matche adresser med flere end 4 oktetter, kan du bruge enten grep eller en en-linjers Perl-syntaks. Her er hvordan du kan gøre det:

Brug af grep

Du kan bruge grep med en regulær udtryks-syntaks for at matche IP-adresser med præcis 4 oktetter:

grep -E '^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' filnavn
  • -E: Brug udvidede regulære udtryk.
  • ^ og $: Sikrer, at hele linjen matches.
  • Regulære udtryk for hver oktet: (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) matcher værdier fra 0 til 255.
  • \.: Matcher punktum mellem oktetterne.

Brug af en en-linjers Perl-syntaks

Du kan også bruge Perl til at matche IP-adresser med præcis 4 oktetter:

perl -ne 'print if /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/' filnavn
  • -ne: Læser input linje for linje og evaluerer koden.
  • print if: Udskriver linjen, hvis betingelsen er sand.
  • Regulært udtryk: Samme som i grep-eksemplet.

Begge metoder sikrer, at kun gyldige IP-adresser med præcis 4 oktetter matches, og undgår adresser med flere end 4 oktetter.