【发布时间】:2011-01-05 17:57:08
【问题描述】:
我有一个正则表达式和替换模式,它们都已在 Notepad++ 中对我的输入数据进行了测试并且可以正常工作。但是,当我将它们放入 sed 表达式时,没有任何匹配项。
这里是 sed 命令:
# SEARCH = ([a-zA-Z0-9.]+) [0-9] (.*)
# REPLACE = \2 (\1)
sed -e 's/\([a-zA-Z0-9.]+\) [0-9] \(.*\)/\2 \(\1\)/g'
这是数据的一个样本:
jdoe 1 Doe, John
jad 1 Doe, Jane
smith 2 Smith, Jon
以及所需的输出:
Doe, John (jdoe)
Doe, Jane (jad)
Smith, Jon (smith)
我尝试在 sed 表达式中删除和添加转义符到不同的字符,但要么没有匹配,要么如下:
sed: -e expression #1, char 42: invalid reference \2 on `s' command's RHS
如何正确转义?
【问题讨论】: