当我们对 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
我正在使用 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