我有一个这样的 csv 文件:
ELAPSEDTIME_SEC;CPU_%;RSS_KBYTES
0;3.4;420012
1;3.4;420012
2;3.4;420012
3;3.4;420012
4;3.4;420012
5;3.4;420012
我想将第一列中的值(它们是秒)转换为 hh:mm:ss 格式(或任何 Excel 或 LibreOffice 可以从 csv 导入的时间格式)并将其插入回文件中第一列之后的新列。所以输出将是这样的:
ELAPSEDTIME_SEC;ELAPSEDTIME_HH:MM:SS;CPU_%;RSS_KBYTES
0;0:00:00;3.4;420012
1;0:00:01;3.4;420012
2;0:00:02;3.4;420012
3;0:00:03;3.4;420012
4;0:00:04;3.4;420012
5;0:00:05;3.4;420012
而且我必须在 Bash 中执行此操作才能在 Linux 和 OS X 下工作。
最佳答案
我希望这是你想要的:
TZ=UTC awk -F';' -vOFS=';' '
{
$1 = $1 ";" (NR==1 ? "ELAPSEDTIME_HH:MM:SS" : strftime("%H:%M:%S", $1))
}1' input.csv
关于linux - 将秒数转换为 hh :mm:ss format (or whatever format Excel or LibreOffice likes) and insert it back to a csv file in Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10619356/