Text-Processing
更改 CSV 文件中的日期格式
我有一個程序以格式輸出數據
date, time,field1,field2,field3,fieldn 12/20/14,08:01:53,318.622,0.93712,21.6867,1.1089
該文件有很多列都需要保持不變
日期格式是美國,但我需要非美國即
date, time,field1,field2,field3,fieldn,.... 20/12/14,08:01:53,318.622,0.93712,21.6867,1.1089,....
實現這一目標的最簡單方法是什麼?我做了一個搜尋,有一些例子,但不是我的情況。還查看了 date 命令,以及 awk 和 sed,但我不知道如何發出命令。例如,這個使用 awk 的答案看起來不錯,但對我的文件沒有做任何事情。
我正在使用 Mac,因此需要適用於 OSX 提供的版本的命令。
sed -E 's,^([0-9]+)/([0-9]+),\2/\1,'
解釋
sed -E
: 將 sed 與擴展的正則表達式一起使用,這樣我們就不必轉義()
等。s/foo/bar/``sed
: 這是搜尋foo
和替換它的一般語法bar
。在這裡,我使用,
了代替/
,因為表達式中有/
s,這將簡化它(再次避免混淆轉義。因此,s,foo,bar,
.^([0-9]+)/([0-9]+)
: 搜尋行^
首,後跟一位或多位數字[0-9]+
,並將其放入擷取組()
。這是一個月。這之後是/
另一個擷取組(即天)中的一個或多個數字。\2/\1
:將其替換為第二個擷取組(日),然後是/
,然後是第一個擷取組(月)。用法
您可以將文件通過管道傳輸到此命令中,即 ie
<your_command_here>| sed…
,或者您可以直接在文件上執行它,即sed… file.txt
. 這將直接輸出到命令行。要寫入新文件,請附加> output.txt
到命令。