Linux:列值 checkin 文件

标签 linux awk

我有一个包含大量列的文件。作为完整性检查,我想查看是否有任何列的值为 -1

使用 awk 的一种简单方法是

cat file.txt | awk '{if($column_no==-1)print}' 

我需要为每一列重复这一点。有没有更好的办法?

最佳答案

我可能遗漏了什么,但这不是 grep 的工作吗? grep ' -1 ' file.txt 将返回任何列为 -1 的所有行,假设文件是​​用空格分隔的。

这还不够清楚,所以还是等宽:

grep ' -1 ' file.txt

-1 前后的空格很重要。

编辑:

好吧,我漏掉了一些东西。如果知道列号很重要,那么一个简单的 for 循环就可以解决问题:

cat file.txt|awk '{for (i=1;i<=NF;i++)if($i==-1) print i}'

NF 是一个内置的 awk 变量,包含记录中的字段数。

SUPEREDIT:考虑到评论,我们有:

awk '{for (i=1;i<=NF;i++)if($i==-1) print NR, i}' file.txt

输出行、列对。根据需要添加您自己的光泽。

关于Linux:列值 checkin 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8756293/

相关文章:

linux - append 到文件时如何避免竞争条件?

python - 如何在 Ubuntu 中运行 Python Qt 文件?

linux - 如何将存储库从 SVN 导入/导出到新的 SVN

python - 如何使用 zdaemon 创建多个脚本守护进程?

linux - 如何在linux上发送POST请求

bash - 用于查找 JPG 和 MOV 文件的 Shell 脚本

sed - 删除多行注释

awk: "default"如果没有匹配的模式怎么办?

linux - awk的系统命令

regex - 找到一个作为模式给出的行词另一个行词,awk,perl,sed,grep?