2

我的问题是正则表达式.*似乎与特殊字符不匹配,如下所示:

\200
\201
\202
...

(在emacs)。

我有一个文件,在分隔符之间有一些值,例如:

[a].[b]

我想像这样显示它们:

a=b

所以我使用正则表达式:

sed 's/^\[\(.*\)\]\.\[\(.*\)\]/\1=\2/g' toto

它可以工作,但是当字符之间的[]字符\200 sed不起作用时,就好像.*与那些字符不匹配一样。

有人有想法吗?

4

2 回答 2

2

使用 perl:

perl -pe 's,^\[([^]]+)\]\.\[([^]]+)\],$1=$2,' toto
于 2013-01-08T16:57:00.113 回答
1

在 Emacs 中:

Mx 查询替换正则表达式

RET

\[\(.*\)] \.\[\(.*\)]

RET

\1=\2

RET

于 2013-01-08T19:47:51.970 回答