我有以下行,并希望用空格替换大写字母T.
"2013-07-26T11:44:06.000+02:00"
我尝试了以下脚本,但它不起作用:
sed 's/^"/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]/T/""/g' file.csv
答案 0 :(得分:5)
由于日期输出不会产生任何其他T,您可以选择:
sed 's/T/ /' file.csv
这将用空格替换第一个遇到的T.
答案 1 :(得分:3)
如何使用tr
?:
tr 'T' ' ' < test.csv
但是,这非常脆弱,因为它会在其他不包含日期的列中替换T
。我给出了这个答案,作为对此不敏感的数据的替代方案。对于所有其他情况,我更喜欢@ AvinashRaj的答案。
答案 2 :(得分:2)
试试这个,
sed -r 's/^\"([0-9]{4}-[0-9]{2}-[0-9]{2})(.)(.*)\"$/\"\1 \3\"/g' file
示例:
$ echo '"2013-07-26T11:44:06.000+02:00"' | sed -r 's/^\"([0-9]{4}-[0-9]{2}-[0-9]{2})(.)(.*)\"$/\"\1 \3\"/g'
"2013-07-26 11:44:06.000+02:00"
答案 3 :(得分:0)
使用tr
tr 't' ' ' <<< "2013-07-26T11:44:06.000+02:00"
答案 4 :(得分:0)
如果行以数字开头,这会将第一个'T'更改为空格。
sed '/^[0-9]/s/T/ /'