这是我的档案:

$ cat myfile.txt
48700039|09:39:58|09:40:34
48700040|09:59:12|09:59:42
48700041|10:01:08|10:05:47
48700042|10:50:53|10:51:24

我想从3中减去第2列,所以我想要的输出是:
48700039|09:39:58|09:40:34|00:00:36
48700040|09:59:12|09:59:42|00:00:30
48700041|10:01:08|10:05:47|00:04:39
48700042|10:50:53|10:51:24|00:00:31

我什么都试过了…提前谢谢!=)

最佳答案

基于gnu awk(gawk)的解决方案:

gawk -F"|" 'BEGIN {DT="2000 01 01 "} { gsub(/:/, " "); t1=mktime(DT $2);
      t2=mktime(DT $3); gsub(/ /, ":"); print $0"|"strftime("%T", t2-t1, "UTC") }'

现场演示:http://ideone.com/VZ1DPD

关于linux - 使用Awk或Bash减去两列的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15969997/

10-13 05:49