Вы можете сопоставить границы слов в sed, используя специальные маркеры \<
, \>
в регулярном выражении.
Например:
$sed -e 's/\<for\>//g' < sourceFile.txt
it was green forever candy
Это регулярное выражение соответствует «для» только как целое слово, а не как часть навсегда.
Таким образом, вы можете изменить исходный анлайнер следующим образом:
sed -e "$(sed 's:.*:s/\\<&\\>//g:' /path/to/wordsToRemove.txt)” /path/to/sourceFile.txt > outFile.txt
Обратите внимание на экранирование \<
и \>
.
Проблема в строке назначения, ее надо поменять на:
exec :a :=${SH_NUM};