将列附加到动态更改/更新的文本

将列附加到动态更改/更新的文本

我写了下面的脚本。

#!/bin/bash
read -p "Enter your SR number : " SR
echo -e "$SR\t$(date +"%Y-%m-%d")" >> /tmp/cases.txt

awk 'BEGIN{printf("%-5s%-20s%-20s\n","#","Case Number","Date Opened")}{printf("%-5s%-20s%-20s\n",NR,$1,$2,$3)}' /tmp/cases.txt

case.txt 文件中的输出是

[root@centOS ~]# cat /tmp/cases.txt
1234567890      2017-03-24
2345678901      2017-03-24

但脚本的输出是:

#    Case Number         Date Opened
1    1234567890          2017-03-24
2    2345678901          2017-03-24

如果我尝试将 awk 输出附加到 Cases.txt 文件,那么每次运行脚本时它都会打印列名称。

我的目标是,该脚本将用于跟踪所有传入的案例。每次打开新案例时都会运行该脚本。它会更新cases.txt 文件。我想要 Cases.txt 文件# 案件 数字日期 打开列,其中#每次有新值出现时都会递增。这部分适用于上面的脚本,但不是我想要的方式。

有什么帮助吗?谢谢

答案1

f='/tmp/cases.txt'
[ -s "$f" ] || printf '%s\t%s\t%s\n' '#' 'Case Number' 'Date Opened' > "$f"
n=$(wc -l < "$f")
read -p "Enter your SR number: " SR
printf '%d\t%d\t%s\n' "$n" "$SR" "$(date)" >> "$f"

相关内容