Portál AbcLinuxu, 5. listopadu 2025 20:24
mam datum
25.03.2005 12:32:15 6
chci prohazet den, rok, mesic... pomoci AWK tj. FS ma byt dvojtecka, mezera, tecka
cat datum|awk ' FS=":|\\.| " {print $3" "$2" "$1" "$4}'
proc je nutno tecku eskejpovat 2x?
\\.
$ echo 1.2 | awk 'FS="\." {print $1}'
awk: warning: escape sequence `\.' treated as plain `.'
1.2
Vypadá to, že i awk sám dělá nějaké unescapování vstupu a až pak výsledek začne zpracovávat např. jako regulární výraz.
#!/usr/bin/gawk -f
BEGIN {FS = "."}
{
den = $1 ; mesic = $2 ; rok = substr($3,0,4) ; zbytek = substr($3,6)
print rok mesic den, zbytek
}
awk -F '[.: ]' '{print $3" "$2" "$1" "$4}'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.