Tôi có một mẫu regex và thay thế đã được kiểm tra trong Notepad ++ trên dữ liệu đầu vào của tôi và hoạt động chính xác. Tuy nhiên, khi tôi đặt chúng vào một biểu thức sed, không có gì phù hợp.Thoát các chuỗi sed đúng
Đây là lệnh sed:
# SEARCH = ([a-zA-Z0-9.]+) [0-9] (.*)
# REPLACE = \2 (\1)
sed -e 's/\([a-zA-Z0-9.]+\) [0-9] \(.*\)/\2 \(\1\)/g'
Đây là một mẫu của dữ liệu:
jdoe 1 Doe, John
jad 1 Doe, Jane
smith 2 Smith, Jon
và đầu ra mong muốn:
Doe, John (jdoe)
Doe, Jane (jad)
Smith, Jon (smith)
Tôi đã cố gắng loại bỏ và thêm trốn thoát đến các nhân vật khác nhau trong biểu thức sed, nhưng hoặc là không có gì phù hợp hoặc một cái gì đó dọc theo dòng:
sed: -e expression #1, char 42: invalid reference \2 on `s' command's RHS
Làm cách nào để thoát khỏi chính xác?
Đó làm việc thật đẹp. Cảm ơn. –