2015年05月18日 06:01:29

如何使用shell从一个文件中取出不在另一个文件中的内容

作者: 
本文展示如何利用shell从一个文件中,(按行)找出不在另一个文件中的内容。
  1. #!/bin/bash
  2. #@filename checkAddWord.sh
  3. #@author Zjmainstay
  4. #@website http://www.zjmainstay.cn
  5. #@year 2015
  6. #allword.txt 存放总词库(每行一个)
  7. #newword.txt 存放新增词(每行一个)
  8. #newword.add.txt 在cygwin中执行sh checkAddWord.sh后,可新增词存入此文件
  9. #唯一化总库
  10. cat allword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > allword.tmp.txt
  11. mv allword.tmp.txt allword.txt
  12. #唯一化新词库
  13. cat newword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > newword.tmp.txt
  14. mv newword.tmp.txt newword.txt
  15. #得到已使用词库
  16. cat allword.txt newword.txt | sed -e "{N;s/\r//g}" | sort | uniq -c | grep "^\s*[2-9] " | sed -e "s/^\s*[2-9]\s//g" | sed -e "{N;s/\r//g}" | sed -e "s/^\s*\xEF\xBB\xBF//g" > usedword.txt
  17. #得到新词库
  18. cat newword.txt usedword.txt | sed -e "{N;s/\r//g}" | sort | uniq -c | grep "^\s*1 " | sed -e "s/^\s*1\s//g" | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\n/\r\n/g}" > newword.add.txt
  19. #删除已使用词库
  20. rm -rf usedword.txt
  21. echo "如下关键词可新增:"
  22. cat newword.add.txt


未经同意禁止转载!
转载请附带本文原文地址:如何使用shell从一个文件中取出不在另一个文件中的内容,首发自 Zjmainstay学习笔记
阅读( 2268 )
看完顺手点个赞呗:
(3 votes)

1.PHP cURL群:PHP cURL高级技术
2.正则表达式群:专精正则表达式
3. QQ联系(加请说明):QQ联系博主(951086941)
4. 邮箱:zjmainstay@163.com
5. 打赏博主: 捐赠支持本博客

阿里云幸运券分享
网站总访问量: