Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在UNIX中按列计算txt文件中的非空行数_Unix - Fatal编程技术网

在UNIX中按列计算txt文件中的非空行数

在UNIX中按列计算txt文件中的非空行数,unix,Unix,我试图计算txt文件中所有列的非空行数。我能够单独读取每列中的非空行,但我正在尝试将它们全部循环在一起awk-F“|”'$1=“{N++}打印N” 下面是我的数据 A | B | C | D | E 1 | 2 | 0 | 8| 5 | 3 | 6 | 4 || 8 | | |7 | 8 | | 8 | 9 | 2 | 4 我希望结果是这样的: A栏:3 B栏:4 C栏:5 D栏:1 列E:2您的尝试无效。请删除-F之间的空格,并使用end在末尾调用print N: awk -F "|" '$1

我试图计算txt文件中所有列的非空行数。我能够单独读取每列中的非空行,但我正在尝试将它们全部循环在一起<代码>awk-F“|”'$1=“{N++}打印N”

下面是我的数据

A | B | C | D | E

1 | 2 | 0 | 8|

5 | 3 | 6 | 4

|| 8 | |

|7 | 8 | |

8 | 9 | 2 | 4

我希望结果是这样的: A栏:3 B栏:4 C栏:5 D栏:1
列E:2

您的尝试无效。请删除
-F
之间的空格,并使用
end
在末尾调用
print N

awk -F "|" '$1!=""{N++} END {print N}' input.txt
此命令还将计算缺少
|
的某些文本的行数
另一种选择是

grep -cE "[^|]+\|" input.txt

如果要检查所有行的所有列,而不是特定列,请执行以下操作:

awk -F'|' '{ for (i = 1; i <= NF; i++) if ($i != "") n++ } END { print n }' input.txt

awk-F'|''{for(i=1;我可以为您提供输入和预期输出是的,您是对的,谢谢您的更正。但它只对第一列起作用。我想为“N”列循环它。我不确定您想要什么。当您要取消所有以
开头或结尾的行,以及以
开头或结尾的行时,请尝试
grep-vcE“^\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$”input.txt
(首先选中
grep-vE
)。这将按行提供非空值,但我希望所有列都按列显示。@MdDanishKhan您必须在问题中提供示例,以便更好地解释您需要的内容。我添加了一个示例。希望它能有所帮助。