Awk:从列中删除除白名单之外的所有字符

Awk: Strip all characters except whitelisted ones from a column

   awk 'length()==3 && length()==3 {print ,  "\t", }' file.txt

我正在尝试打印只有一个字符的列。

它可以是 A 或 B 或 C 或 D ,否定 $5 中的所有其他内容。

file.txt 中的 $5 是

112C
222F
B212
F2334
C23
A123

我希望输出为

 C

 B

 C
 A

awk 'length()==3 && length()==3 {match(, /A|B|C|D/, arr); print , "\t", arr[0]}' file.txt

</code> 中删除除 </em> <code>ABCD 之外的所有字符, 使用 gsub(/[^ABCD]/, "", )

应用于您的命令:

awk 'length()==3 && length()==3 { 
  gsub(/[^ABCD]/, "", );
  print ,  "\t" 
}' file.txt