有文件a和b,想找到公共线和差异线。
➜ ~ cat a <(echo) b
1
2
3
4
5
1
2
a
4
5
#find common lines
➜ ~ grep -F -f a b
1
2
4
5
#find b-a
➜ ~ grep -F -v -f a b
a
一切正常,但是当一个文件中有空行时,grep无效,请参阅下面的
# add an empty line in file a
➜ ~ cat a
1
2
3
4
5
# content a is not common
➜ ~ grep -F -f a b
1
2
a
4
5
# b-a is nothing
➜ ~ grep -F -v -f a b
为什么会这样,为什么一旦有空行,grep无法正常工作?
此外,使用grep
查找常见元素还有另一个问题,例如
➜ ~ cat a <(echo) b
1
2
3
4
5
6
1
2
a
4
5
6_id
➜ ~ grep -F -f a b
1
2
4
5
6_id
答案 0 :(得分:1)
你可以使用comm和diff而不是grep吗?
查找常用行使用:
comm -12 a b
找到差异线:
diff a b