Một cách tốt để thực hiện thay thế chuỗi trong một tệp bằng cách sử dụng một từ điển với rất nhiều cặp nhóm thế? Và rất nhiều , tôi thực sự có nghĩa là khoảng 20 - không nhiều, nhưng nhiều đến mức tôi muốn sắp xếp chúng gọn gàng.
Tôi muốn thu thập tất cả các cặp nhóm thế trong một tệp dictionary.txt
theo cách dễ quản lý, vì tôi cần thay thế nhiều thứ, nói như sau:
"yes" : "no"
"stop" : "go, go, go!"
"wee-ooo" : "ooooh nooo!"
"gooodbye" : "hello"
"high" : "low"
"why?" : "i don't know"
Bây giờ tôi muốn áp dụng những thay thế này trong một số tập tin novel.txt
.
Sau đó, tôi muốn chạy magiccommand --magicflags dictionary.txt novel.txt
sao cho tất cả các trường hợp yes
trong novel.txt
được thay thế bằng no
(vì vậy ngay cả Bayesian
sẽ được thay thế bằng Banoian
) và tất cả các trường hợp goodbye
trong novel.txt
sẽ được thay thế bằng hello
và vân vân.
Cho đến nay, các chuỗi tôi cần thay thế (và thay thế bằng) không có bất kỳ dấu ngoặc kép nào (không đơn lẻ hay gấp đôi) trong chúng. (Tuy nhiên, thật tuyệt khi thấy một giải pháp hoạt động tốt với các chuỗi chứa dấu ngoặc kép, tất nhiên.)
Tôi biết sed
và awk
/ gawk
có thể làm những thứ đó một cách chủ yếu, nhưng chúng cũng có thể làm việc với các tệp từ điển như vậy không? Có vẻ như gawk
sẽ là ứng cử viên phù hợp cho magiccommand
, những gì là đúng magicflags
? Làm thế nào để tôi cần định dạng của tôi dictionary.txt
?