Hirdetés

  • Headless

    őstag

    Hát ez egy összetetteb ha így mindenre gondolni kell...

    Első körben vegyük azokat amik a sor közepén helyezkednek el, 4 szám egymás után, előtte utána bármi ami nem szám, az már évszám

    sed "s/\([^0-9]\)\(19\)\([0-9]\{2\}[^0-9]\)/\120\3/g" /evszam.txt

    Előtte nincs semmi (sorkezdés) utána van bármi ami nem szám.

    sed "s/^\(19\)\([0-9]\{2\}[^0-9]\)/20\2/" /evszam.txt

    Előtte bármi ami nem szám, utána semmi (sorvég).

    sed "s/\([^0-9]\)\(19\)\([0-9]\{2\}\)$/\120\3/" /evszam.txt

    előtte utána semmi (csak az évszám van).

    sed "s/^\(19\)\([0-9]\{2\}\)$/20\2/" /evszam.txt

    Persze ezt besűrítheted egy nagy átláthatatlan parancsba.

    sed "s/^\(19\)\([0-9]\{2\}\)$/20\2/;s/\([^0-9]\)\(19\)\([0-9]\{2\}\)$/\120\3/;s/^\(19\)\([0-9]\{2\}[^0-9]\)/20\2/;s/\([^0-9]\)\(19\)\([0-9]\{2\}[^0-9]\)/\120\3/g" /evszam.txt

    Minden eshetőségre könnyebbet nem találtam. Persze a szövegelválasztókat cserélheted bármi másra. [^0-9] hogy ne ugorjon bármire, ami nem szám. pl nem szám és nem betű. [^0-9a-zA-Z] vagy csak szóköz és vessző [ ,]

    Az &&-el óvatosan, ha mindenképp le kell futni, mert ha így adod ki, akkor csak akkor fog lefutni, ha az első parancs lefutott és a return értéke 0.

    vagyis ha mondjuk grep nem talál semmit akkor nem fog végrehajtódni a && után jövő parancs. Ha már 1 sorba kell tömöríteni használjuk a ";"-et parancsok elválasztásához.

    [ Szerkesztve ]

    LEDE - R3G/DIR860l -> https://tinyurl.hu/Ntkb/