我是新來的Linux一般,我想用sed命令來改變我的日誌文件的格式:格式時間戳輸出使用的sed
當前格式:
2016-09-27file.txt::2016-09-27 18:00:00
預期格式:
2016-09-27file.txt::2016/09/27-18:00:00
我該如何編寫sed命令?
感謝, ž
我是新來的Linux一般,我想用sed命令來改變我的日誌文件的格式:格式時間戳輸出使用的sed
當前格式:
2016-09-27file.txt::2016-09-27 18:00:00
預期格式:
2016-09-27file.txt::2016/09/27-18:00:00
我該如何編寫sed命令?
感謝, ž
下面顯示瞭如何做到這一點上一行:
echo "2016-09-27file.txt::2016-09-27 18:00:00" | sed 's/\([0-9]*\)-\([0-9]*\)-\([0-9]*\) /\1\/\2\/\3-/'
的regexp
一部分要更換的日期部分,這也是分裂相匹配將其轉換爲子表達式,以使這些零件在替換零件上可供使用。
這工作,謝謝。 – Calvin
這裏有一個perl
版本
$ echo '2016-09-27file.txt::2016-09-27 18:00:00' | perl -pe 's#::\K(\d{4})-(\d{2})-(\d{2}) #$1/$2/$3-#'
2016-09-27file.txt::2016/09/27-18:00:00
::\K
積極的回顧後,檢查是否::
存在,不會被替換(\d{4})-(\d{2})-(\d{2})
拍攝日期$1/$2/$3-
重新格式化,$1
對應於捕捉組(\d{4})
等等#
是定界符使用比通常/
這使得不必要逃避替換字符串/
即用'一個嚴重弄亂日誌文件格式:單曲兩者分離字段和字段內和與指定了兩次的時間使用。你能解決它的來源嗎? –