我正在嘗試洗掉以下示例中的 HH MM(minute) SS 部分:
data=`security find-certificate -c "ABC Company Root 2016 CA" -p | openssl x509 -text | grep "Not After"`
echo $data
Not After : Mar 6 01:00:53 2026 GMT
date1=`cut -c 13-32 <<< $data`
echo $date1
Mar 6 01:00:53 2026
問題是我不能按字符位置去,因為文本長度可以改變。例如,日期可以是 16 號而不是 6 號(或任何兩位數)。日期將被匯出并且不會是靜態的。因此,我需要一種方法來查找“:”前后的字符并洗掉它們。
我希望輸出采用以下格式(MM DD YYYY):
2026 年 3 月 6 日
uj5u.com熱心網友回復:
比字串決議更強大的解決方案是使用date -d讀取日期,然后 <format>以您選擇的格式將其吐出。%b %-e %Y會給你Mar 6 2026,如果你愿意,你可以將其更改為另一種格式。有關date --help格式說明符的串列,請參見。
$ date -d "$date1" '%b %-e %Y'
Mar 6 2026
uj5u.com熱心網友回復:
與bash:
data='Not After : Mar 6 01:00:53 2026 GMT'
read x x x m d x y x <<< $data
echo "$m $d $y"
輸出:
2026 年 3 月 6 日
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/314057.html
