我在檢查我的輸入參數是否爲YYYYMMDDN或YYYYMM。如何檢查LINUX中的日期格式
如果我輸入的日期是在YYYYMMDDN格式,那麼我需要驗證它,並把它轉換成MMNYY格式 如果我輸入的日期是在YYYYMM格式,那麼我需要驗證它,並把它轉換成YYMM格式。
請讓我知道如何做到這一點。
我在檢查我的輸入參數是否爲YYYYMMDDN或YYYYMM。如何檢查LINUX中的日期格式
如果我輸入的日期是在YYYYMMDDN格式,那麼我需要驗證它,並把它轉換成MMNYY格式 如果我輸入的日期是在YYYYMM格式,那麼我需要驗證它,並把它轉換成YYMM格式。
請讓我知道如何做到這一點。
下面將YYYYMMDDN
或YYYYMM
格式的日期的工作:
dt='201304203'
[[ $dt =~ ^[0-9]{6}([0-9]{3})? ]] && echo "matched"
不過請注意,這不會驗證您的日期。
備選地用sed:
echo $dt | sed -n '/^[0-9]\{6\}[0-9]\{0,3\}/p'
備選#2使用grep:
echo $dt | grep -qP '^[0-9]{6}[0-9]{0,3}$'
然後檢查返回代碼$?
(1表示失敗和0表示匹配的)
更新:
對於YYYYMMDDN => MMNYY:
echo '201304203' | sed -r 's/^[0-9]{2}([0-9]{2})([0-9]{2})[0-9]{2}([0-9])$/\2\3\1/'
對於YYYYMM => YYMM:
echo '201304' | sed -r 's/^[0-9]{2}([0-9]{2})([0-9]{2})$/\1\2/'
當你想 「幫助」 的意思是 「寫我的東西」 - 這是行不通的所以。如果您遇到問題,請自行嘗試並回來,因爲某些符號無法按預期工作。 – akluth 2013-04-24 15:33:36
什麼是'YYYYMMDDN'格式? – anubhava 2013-04-24 15:34:20
YearmonthDateWeekNum – Teja 2013-04-24 15:35:56