当我们对 2 个模式进行 grep 时,使用 grep 的 XOR 运算符

XOR operator with grep when we grep on 2 patterns

我正在使用 grep 查找 2 个模式与条件 OR 的匹配,通常是这样的:

grep -E 'C_matrix|F_matrix' triplot_XC_dev_for_right_order_with_FoM.py | wc -l

我现在想排除两个模式在同一行上匹配的情况,即我想在 grep 中使用 XOR 运算符。

我该如何进行这个操作?也许另一个技巧是可能的(我考虑 grep -v 排除但是在一个命令行中使用 grep -E 执行此操作会很好)。

当你想做这样的特例时,最好使用awk:

 $ awk '(/C_matrix/ && !/F_matrix/) || (!/C_matrix/ && !/F_matrix/)' file

使用GNU awk,可以使用位操作函数xor:

$ awk 'xor(/C_matrix/,/F_matrix/)' file