Linux
如何在bash中重組日期變數
我有一個 bash 腳本,它以這種格式獲取使用者輸入的日期:
dd.mm.yyyy
並將其保存為變數$date
現在我需要將此變數修改為以下格式:
yyyymmdd
以供進一步使用。所以沒有更多的點,並且點之間的值是從前到後的。
例如,有沒有一種簡單的方法來做這種事情
sed
?
這是一個純粹的
bash
解決方案:$ # input is dd.mm.yyyy $ input_date="dd.mm.yyyy" $ # output will be yyyymmdd $ output_date=${input_date:6:4}${input_date:3:2}${input_date:0:2} $ echo "$output_date" yyyymmdd
這是我的簡單
sed
方法。不是特別聰明但有效:-)$ IN=12.34.5678 $ OUT=$(echo $IN | sed 's/\(..\).\(..\).\(....\)/\3\2\1/') $ echo $OUT 56783412 $
awk
方法$ OUT=$(echo $IN | awk -F. '{print $3$2$1}') $ echo $OUT 56783412 $
tr
//混合tac
_paste
$ OUT=$(echo $IN | tr '.' '\n' | tac | paste -s -d "") $ echo $OUT 56783412 $