replace a unknown string between two known strings with sed
bash, regex, sed
Solution
sed -i 's/WORD1.*WORD3/WORD1 foo WORD3/g' file.txt
or
sed -i 's/(WORD1).*(WORD3)/\1 foo \2/g' file.txt
You might need to escape round brackets, depends on your sed variant.
Problem
I have a file with the following contents: `WORD1 WORD2 WORD3` How can I use sed to replace the string between WORD1 and WORD3 with `foo`, such that the contents of the file are changed to the following?: `WORD1 foo WORD3` I tried the following, but obviously I'm missing something because that does not produce the desired results: `sed -i '' 's/WORD1.*WORD3/foo/g' file.txt`