用另一个文件替换一个文件中所有字符串的实例

时间:2020-08-29 00:06:42

标签: arrays string bash

我将获得一个输入文件,其中可能包含许多不良词。我想用“哔”代替每次出现的坏词

这是我的输入文件:

in.txt

May I have your attention, please?

坏词文件:

badwords.txt

包含不良词

我的bash脚本执行我打算做的事情:

process.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?

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

1 个答案:

答案 0 :(得分:2)

cuss-words.txt中的某些行包含空格,因此,如果不将for数组用双引号引起来,它们将在badWords循环中被破坏。

更改此行:

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

对此:

for badWord in "${badWords[@]}"; do
相关问题