我有4个按字母顺序排序的文件,A,B,C和D. 这些文件在每行包含一个字符串。 基本上,需要发生的是B中的任何内容都从A中删除。 结果将被剥夺C中的任何内容。 同样地,其结果将被剥夺D.
有没有办法使用Linux命令?
答案 0 :(得分:5)
comm
对此有好处:
cat B C D | sort | comm -2 -3 A -
或:
comm -2 -3 A B | comm -2 -3 - C | comm -2 -3 - D
取决于您的脚本更容易/更清楚。
答案 1 :(得分:2)
grep -x -v -f B A | grep -x -v -f C | grep -x -v -f D
-v开关是反向匹配(即匹配所有除外)。 -f开关获取一个文件,其中包含要匹配的模式列表。 -x开关强制它匹配整行(这样,作为其他行的子串的行不会导致删除较长的行)。
答案 2 :(得分:1)
查看join
命令。阅读其手册页,你应该找到你想要的东西。
答案 3 :(得分:0)
join A B | join - C | join - D