在UNIX中替换数字之间的字符

时间:2016-12-28 17:56:48

标签: regex sed

我在UNIX中有一个文件,其中包含时间戳中的字符

2016-06-24T14:00:00.1000000;True; 

我想用空白替换时间戳中的T。我使用了sed,但它没有用。

sed -i.bak 's/[0-9]T[0-9]/ /g' filename.csv

当我运行脚本时,它将输出转换为:

2016-06-2 4:00:00.1000000;True;

它在T之前丢失了4,在它之后丢失了1。

2 个答案:

答案 0 :(得分:2)

您需要捕获T之前和之后的数字。然后,您不需要g (global substitution).

sed 's/\([0-9]\)T\([0-9]\)/\1 \2/' file

答案 1 :(得分:-1)

tr与管道一起使用:

cat filename.csv |  tr 'T' ''