【发布时间】:2016-09-21 06:48:54
【问题描述】:
将非常接近的字符串替换为另一个字符串的数字
a b c d a b c d e 23:12:00 k b c l d b d c e 12:02:10
如何将时间(数字)之前的第一个d替换为另一个字符f.应该如下
a b c d a b c f e 23:12:00 k b c l d b f c e 12:02:10
或,
如何用标题替换单元格。
[srinivas@examplewww ~]$ grep -oP '(cell">)[0-2][0-9]+:[0-9]+:[0-9]+' test.html1
cell">06:25:50
cell">23:59:38
cell">23:17:50
cell">06:27:37
cell">06:07:38
应该是这样的
header ">06:25:50
header ">23:59:38
header ">23:17:50
header ">06:27:37
header ">06:07:38
【问题讨论】:
-
另外,规则是什么?
sed 's/d/f/2'满足您的要求,但可能不适用于一般情况。 -
用OR分隔的两个问题陈述完全不同。
-
两者都是不同的。如果第一个是不可能的,那么将使用第二个
-
2 个问题陈述 = 关于 SO 的 2 个单独问题。
-
第一个问题:
perl -nE '$_ = reverse; s/(?<=[0-9])(.*?)d/\1f/g; $_=reverse; print' input.txt我假设d和f是占位符,在实际用例中不必是单个字符串。