首页 > 解决方案 > 用另一个文件替换一个文件中的所有字符串实例

问题描述

我会得到一个可能包含很多坏词的输入文件。我想用“哔”代替每次出现的坏词

这是我的输入文件:

在.txt

May I have your attention, please?

坏话文件:

坏话.txt

包含脏话

我的 bash 脚本来做我想做的事情:

进程.sh

for badWord in ${badWords[@]}; do
    outtext={outtext/badWord/beep}
done

输出:

$ ./process.sh 
May I have your attention, please?
=====================================================
May I havbeep yobbeepbeeppbeep attbeepntion, plbeepabeepbeep?

为什么这不能正确替换坏词?

标签: arraysstringbash

解决方案


中的某些行包含空格,因此如果您不将数组括在双引号中cuss-words.txt,它们将在循环中断开。forbadWords

更改此行:

for badWord in ${badWords[@]}; do

对此:

for badWord in "${badWords[@]}"; do

推荐阅读