我有一个名为RecordCountTest.csv的CSV文件示例,如下所示:
Date Time Shift Record
26-06-2016 15:23:01 Shift2 000002
23-06-2016 09:06:24 Shift1 000001
按下GPIO引脚有线按钮时,将运行bash脚本命令。我想要一个简单的AWK或Bash脚本,我可以在命令运行后调用它来记录它发生并跟踪何时。我想通过在当前日期(DD-MM-YYYY),当前时间(HH:MM:SS)的顶部(但在标题下)插入一行来实现这一点,该变量是由bash脚本(如果我在此之前无法弄清楚,我将在90分钟内发布该问题),然后将记录增加1并将文件保存为RecordCountTest.CSV。如果可能的话,我更喜欢SED,因为这是我目前正在努力学习的内容以及任何可能有助于我理解语法的建议,但是会接受任何可以在这个bash脚本中工作的内容,包括AWK。
答案 0 :(得分:2)
awk
救援!
$ gawk -v OFS="\t" -v s="${shift}" 'NR==2{print strftime("%d-%m-%Y"),
strftime("%H:%M:%S"),
s,
sprintf("%06d",$4+1)}
{$1=$1}1' file > temp && mv temp file
如果您的awk
不支持strftime功能,则可以恢复为bash
$ awk -v OFS="\t" -v s="${shift}"
-v d="$(date +"%d-%m-%Y"$'\t'"%H:%M:%S")"
'NR==2{print d, s, sprintf("%06d",$4+1)}
{$1=$1}1' file > temp && mv temp file