有两个文件a.txt和b.txt,需求是,把a.txt中有的但b.txt中没有的行发现来,并写入到c.txt,然后计算c.txt文件的行数。
核心要点
两种方法
- 使用grep -f
- 使用while循环遍历a.txt,进行逐个匹配,如果该行b.txt中没有就重定向到c.txt
grep -f 在文件2中找出有文件1里面内容的行
1 | $ cat a.txt |
代码内容
使用grep -f1
2#a.txt有 b.txt没有 先找出a.txt中有b.txt的内容再取反
$ grep -vf b.txt a.txt >> c.txt;wc -l c.txt
使用脚本1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#
#program:
# 有两个文件a.txt和b.txt,需求是,把a.txt中有的但b.txt中没有的行发现来,并写入到c.txt,然后计算c.txt文件的行数。
#
#history:
#2020/02/11 kun V1.0
cat a.txt |while read line
do
if ! grep -q "$line" b.txt
then
echo $line
fi
done >> c.txt
wc -l c.txt