在UNIX中按列计算txt文件中的非空行数
我试图计算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在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
列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您必须在问题中提供示例,以便更好地解释您需要的内容。我添加了一个示例。希望它能有所帮助。