複数行を含むファイルがあります。一部の行は日付と時刻を表しますが、時間はエポック形式です。いくつかのコマンドを試しましたが、そのコマンドはすべての数値を変換します。その内容だけを変換したいです。同じファイルは次のとおりです。
猫の書式 ================================================== =========== 0='917598936722' 395='1529313008' 391='0' 165='0' 142='0' 131='保留状態' ================================================== =========== 0='917598936722':MSISDN 131='ステータス_保留':PROMO_TP3_STATUS 142='0':USAGE_COUNT_3_STATUS 165='0':EBUCKET_USAGE_TS_3 391='0':PROM_3_END_TIMESTAMP 395='1529313008':日付_TC1 396話
Date_TC1
の行とエポック時間を変換する必要がありますTC2
。同様に、より多くの行がありますが、どちらがエポックの日付/時刻を表すのかわかりません。ただし、その日付/時刻がepoch形式で存在する場合は、人間が読める形式に変換する必要があります。
ベストアンサー1
cat conv.awk
/Date_TC1/||/TC2/ {
split($0, r, "'")
print(r[1], strftime("%c", r[2]), r[3], r[4])
next
}
{ print }
awk -f conv.awk src.txt
=============================================================
0='917598936722' 395='1529313008' 391='0' 165='0' 142='0' 131='Status_Pending'
=============================================================
0='917598936722' :MSISDN
131='Status_Pending':PROMO_TP3_STATUS
142='0' :USAGE_COUNT_3_STATUS
165='0' :EBUCKET_USAGE_TS_3
391='0' :PROM_3_END_TIMESTAMP
395= Mon 18 Jun 2018 11:10:08 AM CEST :Date_TC1
396== Mon 18 Jun 2018 11:10:08 AM CEST :TC2