
我正在努力理解如何使用 sed 來使用模式匹配。
在一個大檔案中,我想將以下日期格式替換為 ,dd.mm.yyyy
所以dd/mm/yyyy
基本上用斜線替換點。該文件包含多次出現的指定格式的日期,但是,不得更改句子末尾的句號等。
sed 's/\./\//g' <file_name>
完成這項工作,但會更改每個 (.),所以我需要某種方法來執行模式匹配。
任何幫助,將不勝感激。
謝謝
答案1
這可以完成工作:
sed 's/\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9]\{4\}\)/\1\/\2\/\3/g' file
解釋:
s/ # substitute
\([0-9][0-9]\) # group 1, 2 digits
\. # a dot
\([0-9][0-9]\) # group 2, 2 digits
\. # a dot
\([0-9]\{4\}\) # group 3, 4 digits
/
\1 # content of group 1
\/ # a slash
\2 # content of group 2
\/ # a slash
\3 # content of group 3
/g # global flag