Linux中nnnn第一依次从下txt中拿出一个词语nhomecikujstxt-homecikujytxt-homecikumrtxt-homecikudaikuantxt-homecikulicaitxt-homecikumrtxt-homecikutousutxt-homecikuyanzhongjinggaotxt-homecikuyidongzengzhitxt-homecikuyisizhapiantxtn以上txt中包含的词语已经被隔开nn第二拿到的词语到下面文本中查找存在的话输出
#!/bin/bash
上面这一行是指定脚本解释器,表示使用bash
定义要搜索的词语列表
words=$(cat /home/ciku/js.txt /home/ciku/jy.txt /home/ciku/mr.txt /home/ciku/daikuan.txt /home/ciku/licai.txt /home/ciku/mr.txt /home/ciku/tousu.txt /home/ciku/yanzhongjinggao.txt /home/ciku/yidongzengzhi.txt /home/ciku/yisizhapian.txt | tr '\n' '|' | sed 's/|$//')
定义要搜索的文本
text='过傻逼茅台集团的系列的酒后里成酿我是咱们茅台集团厂家的区域经理福特尼这个整个河北省的也是感谢您这两门迁衣主播和茅台集'
使用grep命令搜索匹配的词语,并输出匹配的词语和来源文件名
echo "$text" | grep -o -w -F -e "$words" | awk -v FS='|' '{print $0, FILENAME}' /home/ciku/js.txt /home/ciku/jy.txt /home/ciku/mr.txt /home/ciku/daikuan.txt /home/ciku/licai.txt /home/ciku/mr.txt /home/ciku/tousu.txt /home/ciku/yanzhongjinggao.txt /home/ciku/yidongzengzhi.txt /home/ciku/yisizhapian.txt
解释:
第1行:指定脚本解释器,表示使用bash
第4行:定义要搜索的词语列表,使用cat命令读取文件内容,使用tr命令将换行符转换为“|”分隔符,使用sed命令去掉最后一个分隔符
第7行:定义要搜索的文本
第10行:使用grep命令搜索匹配的词语,-o表示只输出匹配的部分,-w表示只匹配整个单词,-F表示不使用正则表达式,-e后面跟上要匹配的词语列表
第11行:使用awk命令打印匹配的词语和来源文件名,-v FS='|'表示将分隔符设置为“|”,$0表示整个匹配部分,FILENAME表示当前正在读取的文件名
原文地址: https://www.cveoy.top/t/topic/qn0 著作权归作者所有。请勿转载和采集!