linux 如何在终端上显示数字计数
How to show number counts on terminal in linux
请问如何计算文件中的数字列表
awk '{for(i=1;i<=NF;i++){if($i>=0 && $i<=25){print $i}}}'
使用上面的命令,我可以在终端上显示数字的范围,但是如果有这么多,将很难统计它们。请问我怎样才能在终端上显示号码的数量,例如
1-20,
2-22,
3-23,
4-24,
etc
我知道我可以使用 wc
但我不知道如何将它注入上面的命令
将输出通过管道传输到 sort -n
和 uniq -c
awk '{for(i=1;i<=NF;i++){if($i>=0 && $i<=25){print $i}}}' filename | sort -n | uniq -c
您需要先排序,因为uniq
要求所有相同的元素是连续的。
awk '
{ for(i=1;i<=NF;i++) if (0<=$i && $i<=25) cnts[$i]++ }
END { for (n in cnts) print n, cnts[n] }
' file
虽然我个人是 awk 的粉丝,但您可能会很高兴了解 grep -o
功能。我正在使用 grep -o
来匹配文件中的所有数字,然后可以使用 awk 来选择 0 到 25(含)之间的所有数字。最后,我们可以使用sort和uniq来统计结果。
grep -o "[0-9][0-9]*" file | awk ' >= 0 && <= 25 ' | sort -n | uniq -c
当然,您可以按照 Ed Morton 的建议在 awk 中使用关联数组进行计数:
egrep -o "\d+" file | awk ' >= 0 && <= 25 ' | awk '{cnt[]++} END { for (i in cnt) printf("%s-%s\n", i,cnt[i] ) } '
我修改了 Ed 的代码(通常不是一个好主意 - 我多年来一直在阅读他的代码)以展示模块化方法 - 一个用于过滤 0 和 25 范围内数字的 awk 脚本和另一个 awk 脚本用于计算(任何东西的)列表。
我还用 egrep 代替 grep 提供了与我的第一个脚本的另一个细微差别。
老实说,第二个 awk 脚本生成了一些意想不到的输出,但我想分享一个更通用方法的示例。编辑:我应用了 Ed 的建议来更正意外输出 - 现在没问题了。
请问如何计算文件中的数字列表
awk '{for(i=1;i<=NF;i++){if($i>=0 && $i<=25){print $i}}}'
使用上面的命令,我可以在终端上显示数字的范围,但是如果有这么多,将很难统计它们。请问我怎样才能在终端上显示号码的数量,例如
1-20,
2-22,
3-23,
4-24,
etc
我知道我可以使用 wc
但我不知道如何将它注入上面的命令
将输出通过管道传输到 sort -n
和 uniq -c
awk '{for(i=1;i<=NF;i++){if($i>=0 && $i<=25){print $i}}}' filename | sort -n | uniq -c
您需要先排序,因为uniq
要求所有相同的元素是连续的。
awk '
{ for(i=1;i<=NF;i++) if (0<=$i && $i<=25) cnts[$i]++ }
END { for (n in cnts) print n, cnts[n] }
' file
虽然我个人是 awk 的粉丝,但您可能会很高兴了解 grep -o
功能。我正在使用 grep -o
来匹配文件中的所有数字,然后可以使用 awk 来选择 0 到 25(含)之间的所有数字。最后,我们可以使用sort和uniq来统计结果。
grep -o "[0-9][0-9]*" file | awk ' >= 0 && <= 25 ' | sort -n | uniq -c
当然,您可以按照 Ed Morton 的建议在 awk 中使用关联数组进行计数:
egrep -o "\d+" file | awk ' >= 0 && <= 25 ' | awk '{cnt[]++} END { for (i in cnt) printf("%s-%s\n", i,cnt[i] ) } '
我修改了 Ed 的代码(通常不是一个好主意 - 我多年来一直在阅读他的代码)以展示模块化方法 - 一个用于过滤 0 和 25 范围内数字的 awk 脚本和另一个 awk 脚本用于计算(任何东西的)列表。
我还用 egrep 代替 grep 提供了与我的第一个脚本的另一个细微差别。
老实说,第二个 awk 脚本生成了一些意想不到的输出,但我想分享一个更通用方法的示例。编辑:我应用了 Ed 的建议来更正意外输出 - 现在没问题了。