今天遇到一个问题,有两个文件,都是hive输出的,字段以table分开,需要两个文件里面的第10个字段,然后找出在第一个文件里的而不再第二个里面的内容。
这个问题需要分几个步骤去做:
1. 分别取出两个文件的第10个字段重定向到不同的文件中。
cat aa.txt |awk '{print $10}' >aa1.txt
cat bb.txt |awk '{print $10}' >bb1.txt
2. 分别对生成的两个文件进行排序:(为两个文件做减法做准备)
sort aa1.txt > aa_sort.txt
sort bb1.txt > bb_sort.txt
3. 最关键的部分了。两个文件做减法
comm -23 aa_sort.txt bb_sort.txt
上面的命令是在aa_sort.txt里但不在bb_sort.txt里的内容