用 grep 实现敏感词屏蔽

 
$cat filters.txt
敏感词1|敏感词2|...|敏感词N
 
filters1.txt只有一行
 
$echo "敏感词" | egrep filtersBuff |wc
$1
 
$echo "非敏感词" | egrep filtersBuff |wc
$0
 
其中 filtersBuff 表示 filter.txt的内容 "敏感词1|敏感词2|...|敏感词N"
 
剩下的,就是用 C语言拼装以上语句,并使用 fopen 执行并获得 echo $? 的返回值了
 
fopen的使用参见
linux C程序中获取shell脚本输出(如获取system命令输出)》  "4、使用 popen"
要在文件中使用 `grep` 命令打印包含某个特定字符的行,可以按照以下方法操作。以下是详细的说明以及一些常见的用法示例。 ### 使用 `grep` 打印包含特定字符的行 #### 基础语法 `grep` 的基础语法如下所示: ```bash grep [options] pattern file(s) ``` 其中 `[options]` 是可选参数,`pattern` 是要匹配的字符串或正则表达式,`file(s)` 是目标文件列表[^1]。 #### 示例 1:简单查找 如果想在一个名为 `example.txt` 的文件中找到所有包含字符串 `hello` 的行,可以运行以下命令: ```bash grep 'hello' example.txt ``` 这会输出文件中所有包含 `hello` 字符串的行。 #### 示例 2:忽略大小写 若希望在搜索过程中忽略大小写(例如同时匹配 `Hello`, `HELLO`, 和 `heLLo`),可以添加 `-i` 参数: ```bash grep -i 'hello' example.txt ``` 这样无论输入的字母是大写还是小写,只要符合模式就会被匹配到[^2]。 #### 示例 3:显示行号 有时候我们还需要知道具体哪一行包含了这个关键词,这时可以用 `-n` 参数来展示每一行对应的编号: ```bash grep -in 'hello' example.txt ``` 这条指令会在每一条结果前加上它的实际位置信息,方便定位问题所在之处。 #### 示例 4:递归搜索目录内的所有文件 当你不确定哪个具体的文档中含有所需的信息时,可以通过指定整个文件夹来进行全局检索。下面的例子展示了如何在整个当前工作区寻找带有关键字“error”的地方,并且连同子目录一起检查: ```bash grep -r 'error' . ``` 这里的`.`代表当前位置;如果是其他路径,则替换为相应的绝对或者相对地址即可[^4]。 #### 示例 5:仅统计数量而不列出具体内容 如果你仅仅关心有多少条目满足条件而非它们的具体样子,那么利用 `-c` 参数就可以轻松完成这项任务: ```bash grep -ic 'warning' logfiles/* ``` 这段代码将会计算出日志集合当中警告消息出现过的总数目。 --- ### 总结 通过灵活运用不同的开关标志位(`-i`,`-n`,`-r`)等配合恰当的查询词句(pattern), 用户完全可以借助简单的 shell 工具迅速高效地从海量数据之中提取有用情报.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值