sed csere

Adott egy file:

2020.01.01
23xx
45y
zzzz

és ez a blokk sokszor, más dátummal.

A dátum sorban a .-t le szeretném cserélni -ra. Tehát pl 2020.01.01 -> 2020-01-01

sed -i "s/^\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1-\2-\3 /" file.txt

Ezzel próbálom, de másik sorokban is vacakol...

Mit böktem el?

Hozzászólások

vagy akar perl:

$ (echo 2020.01.01;echo 23xx; echo 45yy; echo zzzz) | perl -pe "s/^(\d{4})\.(\d{2})\.(\d{2})$/\1-\2-\3/"
2020-01-01
23xx
45yy
zzzz

Az egy kicsit veszályes, hogy *-ot írtál, arra a semmi is illeszkedik. A {4} és {2} szerintem jobb lenne a * helyett, de minimálisan a +.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE