arrays - 用另一个文件替换一个文件中的所有字符串实例
问题描述
我会得到一个可能包含很多坏词的输入文件。我想用“哔”代替每次出现的坏词
这是我的输入文件:
在.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?
为什么这不能正确替换坏词?
解决方案
中的某些行包含空格,因此如果您不将数组括在双引号中cuss-words.txt
,它们将在循环中断开。for
badWords
更改此行:
for badWord in ${badWords[@]}; do
对此:
for badWord in "${badWords[@]}"; do
推荐阅读
- c# - 如何使实例类需要方法调用?
- debugging - 嵌入式系统中的硬件断点与软件断点
- sql - 请帮助将 SQL 查询转换为 Elasticsearch 查询
- java - 错误 404 源服务器未找到当前表示
- javascript - Nodejs中的模块加载是确定性的吗?
- apache-flink - 我们如何根据外部事件清除 Flink 中的状态?
- java - 无法在 Java 中删除文件
- pandas - pd.drop 在函数外工作但不在函数内
- nginx - EKS 中的 UDP 负载平衡替代方案
- jenkins - 如何将多个 Jenkins Jobs\Pipelines 的日志汇总到一个地方?