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?
- 231 megtekintés
Hozzászólások
a pontok ele egy \ jel kell, imho
- A hozzászóláshoz be kell jelentkezni
Köszönöm, megy!
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
Ilyesmi lenne:
sed -i "s/^\([0-9]\{4\}\)\.\([0-9]\{2\}\).\([0-9]\{4\}\)/\1-\2-\3/" file.txt
- A hozzászóláshoz be kell jelentkezni
en a masodik pontot kieszkepelnem. es a harmadik capture groupba 2-t irnek
4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.
- A hozzászóláshoz be kell jelentkezni