動的に変更/更新されたテキストに列を追加する

動的に変更/更新されたテキストに列を追加する

私は次のスクリプトを書いた。

#!/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

Cases.txtファイルにawk出力を追加しようとすると、スクリプトを実行するたびに列名が印刷されます。

私の目標は、このスクリプトを使用してすべての着信ケースを追跡することです。このスクリプトは、新しいケースが開かれるたびに実行されます。 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"

おすすめ記事