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

标签 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?
为什么这不能正确替换坏词?

最佳答案

cuss-words.txt中的一些行包含空格,因此它们将在 for 处被破坏如果不包含 badWords,则循环双引号中的数组。
改变这一行:

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

关于arrays - 用另一个文件替换一个文件中的所有字符串实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63642222/

相关文章:

java - 对来自 Matlab 背景的 Java 数组进行索引

python - Numpy 数组到 base64 并返回到 Numpy 数组 - Python

c - C 中的 char *s[] 和 char s[][20] 有什么区别?

bash - 使用适当的引用自动重写 bash 脚本的工具?

bash - 在 bash 中模拟 ENTER 键here-document

javascript - 将不相同的对象添加到数组中

c - 在结构体中填充 int 数组

c++ - 使用字符串变量初始化字符数组

java - 如何从 Java 中的特定字符串中删除特定字符?

bash - 将所有输出重定向到 lolcat