我会得到一个可能包含很多坏词的输入文件。我想用“哔”替换每一次出现的坏词
这是我的输入文件:
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?
为什么这不能正确替换坏词?
最佳答案
cuss-words.txt
中的一些行包含空格,因此它们将在 for
处被破坏如果不包含 badWords
,则循环双引号中的数组。
改变这一行:
for badWord in ${badWords[@]}; do
对此:for badWord in "${badWords[@]}"; do
关于arrays - 用另一个文件替换一个文件中的所有字符串实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63642222/