私は次のスクリプトを書いた。
#!/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"