Portál AbcLinuxu, 18. listopadu 2025 16:48
-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
Jinak AWK & SED to je super knizka, mohu vrele doporucit. Dokonce se to i hezky cte pred spanim - vysledky voleb v bavorsku rulezzz :)
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.