类似于问题“仅当其中的每一列都是 $VAR1 或 $VAR2 时才删除整行”
但它改为删除整个 COLUMN,并且基于列中每一行的组成
我有一个文本文件,其中列号和行号总是不同的,并且只有当所述列中的每一行都等于 $VAR1 或 $VAR2 时,我才希望从 txt 文件中删除所有列。例如:
假设 $VAR1="X" 和 $VAR2="N" 我想删除 $VAR1 和 $VAR2 构成整个列的任何列。
这将是我的输入:
hajn 32 ahnnd namm X 543 asfn F
namd 90 jsnfu namm X 098 asfn S
5739 dw 32eff Sfff N asd 3123 1
这将是我想要的输出:
hajn 32 ahnnd namm 543 asfn F
namd 90 jsnfu namm 098 asfn S
5739 dw 32eff Sfff asd 3123 1
我可以用一个循环来解决这个问题,但我想知道是否有一种强大的单线方法可以做到这一点,最好是 awk。
看一下这个。
在内部使用带有 if 表达式和 or 表达式的 awk,
||
如果是,则排除 cloumn #5 并打印其余数据。用下面的方法试过,效果也很好
输出
您将需要存储这些行,因为在检查最后一行之前无法做出删除任何列的决定。