我有一个庞大的数据集,我想删除具有相同值-9的列。我有20行和数百万列。
我想删除第1,9,11列(它们都与-9的值相同)这只是我数据集的一小部分。我无法计算哪些列的全部数据集都是-9。
感谢您的帮助,
谢谢!
输出;
我试图用perl删除它。
答案 0 :(得分:0)
你可以尝试下面的awk脚本。
cat a.txt | awk '{
for (Col = 1; Col <= NF; Col++) { a[NR, Col] = $Col }
}
END {
for (Col = 1; Col <= NF ; Col++) {
j=0;
for( Row = 1 ; Row<= NR; Row++)
{
if (a[Row,Col] != -9 )
{ j=1 }
}
if( j == 0 ) { continue;}
for(Row=1; Row<= NR; Row++){
printf a[Row,Col] (Row==NR ? RS : FS)
}
}
}' | awk '{
for (Col = 1; Col <= NF; Col++) { a[NR, Col] = $Col }
}
END {
for (Col = 1; Col <= NF ; Col++) {
for(Row=1; Row<= NR; Row++){
printf a[Row,Col] (Row==NR ? RS : FS)
}
}
}'
测试:
步骤: