Time

從輸出轉換日期和時間

  • September 13, 2019

我有一個包含幾千行日期和時間的文件。

我需要轉換:

2019/08/02-01:23:50+0000

到:

02/Aug/2019-01:23:50 +0000   

我到目前為止有

th=`grep -o '\[.*\]' test.txt | sed 's/\"//g' | head -1
echo $th | date -d +'%Y/%b/%d-%T'

date: invalid date ‘+%Y/%b/%d-%T’

如何讀取日期並格式化?

像這樣的東西:

echo '2019/08/02-01:23:50+0000' | awk -F'/|\+|-' -v month=$(echo '2019/08/02-01:23:50+0000' | awk -F'-' '{print $1}'|date +%b -f -) '{printf "%s/%s/%s-%s +%s\n", $3,month,$1,$4,$5}'

在一行或

MONTH=$(echo '2019/08/02-01:23:50+0000' | awk -F'-' '{print $1}'|date +%b -f -)
echo '2019/08/02-01:23:50+0000' | awk -F'/|\+|-' -v month="$MONTH" '{printf "%s/%s/%s-%s +%s\n", $3,month,$1,$4,$5}'

第一步是提取 2019/08/02 並將 08 轉換為 Aug 然後使用多個分隔符提取所有欄位並printf使用我們想要的格式。這裡很棘手,將shell變數傳遞給(在格式中awk自由填充以刪除)\n``printf

引用自:https://serverfault.com/questions/984061