本文展示如何利用shell从一个文件中,(按行)找出不在另一个文件中的内容。
#!/bin/bash
#@filename checkAddWord.sh
#allword.txt 存放总词库(每行一个)
#newword.txt 存放新增词(每行一个)
#newword.add.txt 在cygwin中执行sh checkAddWord.sh后,可新增词存入此文件
#唯一化总库
cat allword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > allword.tmp.txt
mv allword.tmp.txt allword.txt
#唯一化新词库
cat newword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > newword.tmp.txt
mv newword.tmp.txt newword.txt
#得到已使用词库
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
#得到新词库
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
#删除已使用词库
rm -rf usedword.txt
echo "如下关键词可新增:"
cat newword.add.txt
#!/bin/bash
#@filename checkAddWord.sh
#allword.txt 存放总词库(每行一个)
#newword.txt 存放新增词(每行一个)
#newword.add.txt 在cygwin中执行sh checkAddWord.sh后,可新增词存入此文件
#唯一化总库
cat allword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > allword.tmp.txt
mv allword.tmp.txt allword.txt
#唯一化新词库
cat newword.txt | sort | uniq | sed -e "s/^\s*\xEF\xBB\xBF//g" | sed -e "{N;s/\r//g}" > newword.tmp.txt
mv newword.tmp.txt newword.txt
#得到已使用词库
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
#得到新词库
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
#删除已使用词库
rm -rf usedword.txt
echo "如下关键词可新增:"
cat newword.add.txt