Sådan bruger du grep og sed til at isolere versionsnummeret fra en streng

Hvordan kan en streng, der outputtes fra grep, erstattes for at fjerne unødvendige substrenge og kun vise versionsnummeret ved hjælp af sed?

For at fjerne unødvendige substrenge og kun vise versionsnummeret fra en streng, der outputtes fra grep, kan du bruge sed til at erstatte eller fjerne de uønskede dele af strengen. Eksempel: `echo "Software version 1.2.3 released" | sed 's/.*version \([0-9.]*\).*/\1/'` vil outputte `1.2.3`.

Hvordan kan en streng, der outputtes fra grep, erstattes for at fjerne unødvendige substrenge og kun vise versionsnummeret ved hjælp af sed?

For at fjerne unødvendige substrenge og kun vise versionsnummeret fra en streng, der outputtes fra grep, kan du bruge sed til at erstatte eller fjerne de uønskede dele af strengen. Her er en trin-for-trin guide:

  1. Brug grep til at finde den relevante linje:

    grep "version" filnavn

    Dette vil finde linjen, der indeholder ordet "version".

  2. Brug sed til at fjerne uønskede dele af strengen:

    grep "version" filnavn | sed 's/.*version \([0-9.]*\).*/\1/'

    Her er hvad denne sed-kommando gør:

    • s/.*version \([0-9.]*\).*/\1/ er en sed erstatningskommando.
    • .*version matcher alt før og inklusive ordet "version".
    • \([0-9.]*\) matcher versionsnummeret, som består af cifre og punktummer, og gemmer det i en gruppe.
    • .* matcher alt efter versionsnummeret.
    • \1 refererer til den første gemte gruppe, som er selve versionsnummeret.

Eksempel:

echo "Software version 1.2.3 released" | sed 's/.*version \([0-9.]*\).*/\1/'

Output:

1.2.3

Dette vil effektivt fjerne alt andet end selve versionsnummeret fra strengen.