Portál AbcLinuxu, 15. července 2025 13:54
-5,480183;-5,558819;2007-06-12 13:41:46;2007-06-12 13:41:46 -5,489931;5,567327;2007-06-12 13:51:47;2007-06-12 13:51:47 5,506767;5,581762;2007-06-12 14:01:48;2007-06-12 14:01:48Potřebuji toto:
-5,480183;-5,558819;2007-06-12 13:41:46;20070612134146 -5,489931;5,567327;2007-06-12 13:51:47;20070612135147 5,506767;5,581762;2007-06-12 14:01:48;20070612140148Funguje mi toto:
sed 's/\(.*\):/\1/;s/\(.*\):/\1/;s/\(.*\)-/\1/;s/\(.*\)-/\1/;s/\(.*\)[ \t]/\1/'Nezná někdo jednodušší řešení pomocí sedu nebo awk?
#!/usr/bin/awk -f BEGIN { FS=";"; } { split($4, Z1, " "); split(Z1[1], D, "-"); split(Z1[2], T, ":"); printf("%s;%s;%s;", $1, $2, $3); printf("%s%s%s", D[1], D[2], D[3]); printf("%s%s%s\n", T[1], T[2], T[3]); }Nevim, jestli to je jednodussi reseni ale pro mne osobne rozhodne ideologicky prijatelnejsi
perl -wn -e '($m,$z)=/^(.*;)(.*)$/;print $m, $z =~ /(\d)/g,"\n";'
(v awku, nebo sedu nějak podobně :))
sed -e "s/^\(.*;.*;.*;\)\([0-9]\+\)-\([0-9]\+\)-\([0-9]\+\) \([0-9]\+\):\([0-9]\+\):\([0-9]\+\).*$/\1\2\3\4\5\6\7/"nebo klidně i
sed -e "s/\(....\)-\(..\)-\(..\) \(..\):\(..\):\(..\)[^;]*$/\1\2\3\4\5\6/"a nebo jinak :)
sed -e "s/^\(.*;\)\{3\}\([0-9]\+\)-\([0-9]\+\)-\([0-9]\+\) \([0-9]\+\):\([0-9]\+\):\([0-9]\+\).*$/\1\2\3\4\5\6\7/" sed -e "s/\(....\)-\(..\)-\(..\) \(..\):\(..\):\(..\)\(.*;\)\{1\}$/\1\2\3\4\5\6/"
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.