我有一个正则表达式和替换模式,它们在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
我怎么能正确地获得这个转义?