У меня есть регулярное выражение и шаблон замены, которые были протестированы в 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)
Я попытался удалить и добавить escape-символы к различным символам в выражении sed, но либо ничего не найдено, либо что-то вроде:
sed: -e expression #1, char 42: invalid reference \2 on `s' command's RHS
Как я могу правильно избежать этого?