我需要將.csv文件從一個目錄複製到另一個目錄,同時這樣做需要重新格式化第一列(日期列),從2012年4月13日至2012年4月-13。什麼是執行這種簡單轉換的sed語法?我在網上閱讀的sed內容讓我非常困惑。使用sed複製時的格式化日期列
0
A
回答
2
到目前爲止您嘗試過什麼?你可以從一些小事像這樣的測試案例開始:
echo "13/04/2012;Col2;Col3" | sed -E 's#^([^/]+)/([^/]+)/([0-9]+)(.*)#\3-\2-\1\4#'
s = substitution command
# = start of pattern
^ = start of line
([^/]+)/ = group of all non-/-characters followed by a/(day)
([^/]+)/ = group of all non-/-characters followed by a/(month)
([0-9]+) = group of at least one digit (year)
(.*) = rest of line
# = start of replacement
\3 = backward reference to capture of third group (year)
\2 = backward reference to capture of second group (month)
\1 = backward reference to capture of first group (day)
\4 = backward reference to capture of fourth group (rest of line)
# end of command
1
sed 's|^\([0-9]\+\)/\([0-9]\+\)/\([0-9]\+\)|\3-\2-\1|'
這開始於行(^
)的開頭,記錄(\(...\)
)一個或多個(\+
)號([0-9]
)後跟一個斜槓(/
),第二組後跟另一個斜線和第三組,並重新排列由破折號分隔的記錄集(\1,\2,\3
)。
0
這可能會爲你工作:
sed 's/^\(..\).\(..\).\(....\)/\3-\2-\1/' file
相關問題
- 1. 使用sed更改日期格式爲
- 2. 使用Timex格式化日期時間
- 3. 使用XSLT格式化日期時間
- 4. 使用Javascript格式化日期時間
- 5. 使用sed或awk來修復日期格式
- 6. JQuery DatePicker日期複製時的格式化問題
- 7. 使用awk/sed更改第一列中的日期格式
- 8. jqGrid列日期時間格式化
- 9. 使用正確的日期/時間格式化日期
- 10. 格式化日期時間
- 11. 日期時間格式化
- 12. 格式化日期表導入到MySQL時的日期列
- 13. 使用jQuery日曆格式化日期
- 14. 反序列化日期時間WebApi跨日期格式
- 15. 通過Yii2格式化程序使用日期時間格式
- 16. 劍道格日期列不格式化
- 17. 用熊貓繪製時間序列的格式化日期時間
- 18. 格式化JSON日期格式化的日期基於區域
- 19. 使用DateTimeFormatter設置「早期」日期的格式化時間戳
- 20. 格式化日期?
- 21. 日期格式化
- 22. 如何按日期排列列未格式化的日期?
- 23. 用Java格式化日期
- 24. Ang ng重複日期格式化
- 25. 用Perl格式化日期格式
- 26. 如何在Django中格式化日期時使用本地化的「短格式」?
- 27. 格式化日曆日期
- 28. 使用的sed拉出日期時間
- 29. 用於moment.js的Rails列類型格式化日期和時間
- 30. 格式化帶時區的Postgresql日期
'sed'(至少地雷/ GNU 4.2.1)要求'\ +',而不是一個普通的'+'。 – Kevin 2012-04-18 20:25:35
@Kevin:不會,如果使用擴展正則表達式(-E)! – Mithrandir 2012-04-18 20:29:16
啊,錯過了'-E'。 – Kevin 2012-04-18 20:53:11