linux - 将秒数转换为 hh :mm:ss format (or whatever format Excel or LibreOffice likes) and insert it back to a csv file in Bash

标签 linux macos bash csv sed

我有一个这样的 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/

相关文章:

c - 从 C 程序执行终端

linux - 在 bash shell 脚本中是否有通常用于比较时间的命令?

linux - 如何使用 shell 脚本创建数据并将其插入新文件

macos - 如何使用Mac终端连接到我的大学Unix服务器

eclipse - OSX 10.7 Lion 上的 JDK

linux - [ :== :Unexpected operator, 参数太多,需要二元运算符

linux - 使用 CURL 或 WGET 读取 Gzip 文件页脚

Linux命令做通配符匹配

linux - 如何将我的 git 存储库镜像到家里的更多笔记本

bash - 使用 sed 提取大括号中的子字符串