如何删除包含所有零的文本文件中的行(行)和列.
例如,我有一个文件:
例如,我有一个文件:
1 0 1 0 1 0 0 0 0 0 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1
1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1
我可以使用sed和egrep来做到这一点
sed '/0 0 0 0/d' or egrep -v '^(0 0 0 0 )$'
解决方法
另一个awk变种:
awk '{show=0; for (i=1; i<=NF; i++) {if ($i!=0) show=1; col[i]+=$i;}} show==1{tr++; for (i=1; i<=NF; i++) vals[tr,i]=$i; tc=NF} END{for(i=1; i<=tr; i++) { for (j=1; j<=tc; j++) { if (col[j]>0) printf("%s%s",vals[i,j],OFS)} print ""; } }' file
扩展表格:
awk '{ show=0; for (i=1; i<=NF; i++) { if ($i != 0) show=1; col[i]+=$i; } } show==1 { tr++; for (i=1; i<=NF; i++) vals[tr,i]=$i; tc=NF } END { for(i=1; i<=tr; i++) { for (j=1; j<=tc; j++) { if (col[j]>0) printf("%s%s",OFS) } print "" } }' file
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。