【发布时间】:2012-10-07 08:37:34
【问题描述】:
我有这种格式的文本文件:
...
SomeText.any_text/ch SomeText2.any_3/ch 5.6e-5
SomeText.any_text/ch something.else.point.separated/ch4 5.4e5
...
在一行中,我有三个元素:两个 - 字母数字下划线斜线字符串和一个 - 浮点数。
我只需要在字符串处将点替换为斜线。
我曾尝试使用 sed 和这样的正则表达式
sed 's/\([\w_]\+\)\(\.\)/\1\//g'
而且没有积极的结果。
【问题讨论】:
-
你在使用
\(\)和\1.. -
@Anirudha:(a) 请不要在 SO 上使用 SMS-ese。 (b) POSIX
sed(意为可移植的sed)使用\(...\); GNUsed是非标准的,除非您使用--posix要求它,否则不会使用该表示法,但是......好吧,让我们说拥有标准的重点(重点之一)是让它变得容易移动软件,而 GNUsed的非标准使每个人都更难。 (OTOH,POSIXsed无法将\w识别为元字符序列。) -
@JonathanLeffler
sed让它变得如此困难