如何尽可能缩短 HH:MM:SS?

Ama*_*kon 7 scripting date

假设我有以下语法:HH:MM:SS. 我想让它尽可能短。比如我想把“00:00:30”变成“30”。同样,我希望“0:30:00”变成“30:00”。我如何使用 shell 命令来做到这一点?

sch*_*ity 21

据我了解,您需要删除前导零,所以我们假设您有一个这样的文件

00:00:30
00:01:30
00:30:00
01:30:00
30:00:00
Run Code Online (Sandbox Code Playgroud)

会成为

30
1:30
30:00
1:30:00
30:00:00
Run Code Online (Sandbox Code Playgroud)

如果是这样,您只需应用sed如下命令:

sed 's/^[0:]*//' file
Run Code Online (Sandbox Code Playgroud)

  • 考虑在示例中添加“00:00:00”。我“尽可能多地”阅读,我的正式大脑完全喜欢这个字符串所发生的事情。:D (11认同)
  • 也是不可排序的。 (7认同)
  • 但为什么呢?您将节省少量的存储空间并保证您的结果是非标准的...... (3认同)
  • 如果您也希望处理“00:00:00”→“0”的情况: ` sed -e 's/^[0:]*//' -e 's/^$/0/'` -这将导致空字符串转回单个零。可能有更多方法可以实现这一目标。 (2认同)