0
我需要使用sed
將日期格式從dd/mm/yyyy
更改爲dd.mm.yyyy
。
我試圖做這種方式:使用sed更改日期格式爲
sed 's,[0-9][0-9]/[0-9][0-9],[0-9][0-9][0-9][0-9],[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]'
但是這顯然是行不通的。我如何保持相同的日期,同時只切換期間的斜線。
我需要使用sed
將日期格式從dd/mm/yyyy
更改爲dd.mm.yyyy
。
我試圖做這種方式:使用sed更改日期格式爲
sed 's,[0-9][0-9]/[0-9][0-9],[0-9][0-9][0-9][0-9],[0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]'
但是這顯然是行不通的。我如何保持相同的日期,同時只切換期間的斜線。
你需要你的分隔符(逗號,在你的情況下,但通常是斜槓)在正確的地方。
您還需要反向引用。這些是在左側包圍(轉義)括號,其可使用\ 1的右側,\ 2項等
sed 's,\([0-9][0-9]\)/\([0-9][0-9]\)/\([0-9][0-9][0-9][0-9]\),\1.\2.\3,'
也可以通過指示字符與數縮短的語法裏面搭配(轉義)括號:
sed 's,\([0-9]\{2\}\)/\([0-9]\{2\}\)/\([0-9]\{4\}\),\1.\2.\3,'
爲了您的具體情況,這將是簡單的使用tr '/' '.'
而不使用sed達到相同的效果。
「{」和「}」需要轉義才能使第二個調用工作。或者你可以使用擴展的正則表達式語法並編寫'sed -r',([0-9] {2})/([0-9] {2})/([0-9] {4}), \ 1. \ 2. \ 3,'除此之外,發現。 – Wintermute 2015-02-07 00:29:28
啊,對。固定。謝謝。另外,BSD系統上的sed -E(而不是sed -r)(至少OS X,總之)。 – 2015-02-07 00:39:47
剛剛嘗試過。完美的作品。謝謝 – user3344218 2015-02-07 01:07:54