我想删除或替换数据:":20.08.2015"
数据样本:
: 20.08.2015 02:39:26 : '' 0 1
: 20.08.2015 02:39:26 : '' 0 1
: 20.08.2015 02:39:26 : '' 0 1
: 20.08.2015 02:39:26 : '' 0 1
: 20.08.2015 02:39:26 : '' 0 1
: 20.08.2015 02:39:26 : '' 1 0
: 20.08.2015 02:39:27 : '' 1 0
: 20.08.2015 02:39:27 : '' 1 0
: 20.08.2015 02:39:27 : '' 0 1
: 20.08.2015 02:39:27 : '' 1 0
: 20.08.2015 02:39:27 : '' 0 1
: 20.08.2015 02:39:27 : '' 0 1
: 20.08.2015 02:39:30 : '' 1 0
: 20.08.2015 02:39:30 : '' 0 1
: 20.08.2015 02:39:31 : '' 1 0
更换后应该是:
02:39:26 : '' 0 1
02:39:26 : '' 0 1
02:39:26 : '' 0 1
02:39:26 : '' 0 1
02:39:26 : '' 0 1
02:39:26 : '' 1 0
02:39:27 : '' 1 0
02:39:27 : '' 1 0
02:39:27 : '' 0 1
02:39:27 : '' 1 0
02:39:27 : '' 0 1
02:39:27 : '' 0 1
02:39:30 : '' 1 0
在pspad中我可以用表达式" ^(。*?)。([0-9] +?)"但是在cmd中它不起作用。
我在特殊字符前添加了转义字符。
我的尝试是:" sed -i "s/(.*?).([0-9]\+?\ )//g
" file.log
出了什么问题?
答案 0 :(得分:0)
sed -i 's/^: 20\.08\.2015 //' file.log
不确定-i
在gnuwin中工作(normaly GNU没问题)
如果日期值不完全是20.08.2015但格式相同
sed -i 's/^: [0-3][0-9]\.[01][0-9]\.[12][09][0-9]\{2\} //' file.log
不要忘记.
任何字符而不是点所以逃避它
答案 1 :(得分:0)
试试这个:
sed -i 's/: [0-9]\{2\}\.[0-9]\{2\}\.[0-9]\{4\} //' file.log
表达式中的问题是数字上的延迟匹配(+?
)......这是not supported by sed
。
答案 2 :(得分:0)
所以,伙计们你们很亲密,这对我有用:
sed -i "s/: [0-3][0-9]\.[01][0-9]\.[12][09][0-9]\{2\} //g" file.log
谢谢你!