を指令するタイムスタンプを追加は、私は、次のコマンドを実行します。は出力
{"service":"serviceA-primary","server":"serverA","status":"started"}
{"service":"service1-primary","server":"server1","status":"started"}
{"service":"service2-primary","server":"server2","status":"started"}
{"service":"service3-primary","server":"server3","status":"started"}
{"service":"service4-primary","server":"server4","status":"started"}
私は、各文字列の先頭にタイムスタンプを追加するにはどうすればよい:
sudo clustat | awk '/primary/ {print "{\"" $1 "\",\"server\":\"" $2 "\",\"status\":\""$3"\"}"}' |sed 's/\b:\b/":"/' >> test.log
私に次のような結果を与えますか?私は別のawkまたはsedコマンドを試したが、私は自分の出力を台無しにする。
すなわち:
#!/bin/bash
TIMESTAMP=$(date -Is)
sudo clustat | awk -v TS="${TIMESTAMP}" ' '/primary/ {print "{"{\"timestamp\": \""TS"\", \"" $1 "\",\"server\":\"" $2 "\",\"status\":\""$3"\"}"}' |sed 's/\b:\b/":"/' >> test.log
所望の出力は次のようになります。
{"timestamp": "2016-10-11T18:44:39+0000", "service":"serviceA-primary","server":"serverA","status":"started"}
{"timestamp": "2016-10-11T18:44:39+0000", "service":"service1-primary","server":"server1","status":"started"}
{"timestamp": "2016-10-11T18:44:39+0000", "service":"service2-primary","server":"server2","status":"started"}
{"timestamp": "2016-10-11T18:44:39+0000", "service":"service3-primary","server":"server3","status":"started"}
{"timestamp": "2016-10-11T18:44:39+0000", "service":"service4-primary","server":"server4","status":"started"}
どのようにして所望の出力を得ることができますか?
「私は異なるawkまたはsedコマンドを試しました」---質問を編集して、1つまたは複数の試行を追加してください!それはおそらくそれを修正するためのいくつかの小さなものです。 – jas
オリジナルの投稿を編集しました。 –
'ts'を見てください... http://unix.stackexchange.com/a/26797 –