Suppose I have two lists of strings (list A and list B) with the exact same number of entries, N, in each list, and I want to replace all occurrences of the the nth element of A with the nth element of B in a file in Unix (ideally using Bash scripting).
What’s the most efficient way to do this?
An inefficient way would be to make N calls to “sed s/stringA/stringB/g“.
This will do it in one pass. It reads listA and listB into awk arrays, then for each line of the linput, it examines each word and if the word is found in listA, the word is replaced by the corresponding word in listB.
I’m assuming the strings in listA do not contain whitespace (awk’s default field separator)