如何选择包含至少5个相同模式的列(不是行)?
我的意思是,并选择3个字符'a'
的列a dog c d
a dog c d
1 dog dog 4
a a dog a
z z dog z
并将ouptut作为完整列,如
dog c
dog c
dog dog
a dog
z dog
如果您愿意,我正在寻找垂直版本的grep命令... :) 我试图解决awk但没有成功
模式可以在任何列上的任何行 我想打印出至少有3个相似模式的完整列
这里以两列为例,但它们可以是2cd&第3列以及第21列和第102列...
答案 0 :(得分:1)
awk
救援!
$ awk -v v='a' -v n=3 'NR==FNR {for(i=1;i<=NF;i++) if($i==v) c[i]++; next}
{for(i=1;i<=NF;i++)
if(c[i]>=n) printf "%s", $i OFS;
print ""}' file{,}
a
a
1
a
z
指定值和计数;双重扫描文件计算出现次数并打印满足条件的列。