3
Regex & Sed / Perl: จับคู่คำที่ไม่นำหน้าด้วยคำอื่น
ฉันต้องการใช้sedหรือperlแทนที่คำทั้งหมดที่ไม่มีคำที่อยู่ข้างหน้า ตัวอย่างเช่นฉันมีไฟล์ข้อความที่มีเนื้อเรื่องของภาพยนตร์และฉันต้องการที่จะแทนที่นามสกุลของตัวละครทุกตัวด้วยชื่อของพวกเขา แต่เฉพาะในกรณีที่ชื่อของพวกเขาไม่ได้มาก่อนนามสกุลของพวกเขา ข้อความตัวอย่างอาจมีลักษณะเช่นนี้: John Smith and Jane Johnson talk about Smith's car. ฉันอยากให้มันเป็นแบบนี้: John Smith and Jane Johnson talk about John's car. ถ้าฉันแค่ทำsed 's/Smith/John/' fileแล้วฉันจะมี: John John and Jane Johnson talk about John's car. ชื่อแรกที่มาก่อนนามสกุลจะเหมือนกันเสมอ ฉันไม่ได้มีการจัดการกับและJohn Smith Frank Smithฉันต้องการวิธีการจับคู่Smithที่ไม่ได้นำJohnหน้า