shell 统计问题

    技术2026-05-24  8

    name1 china name1 japan name1 china name2 china name2 china 结果: name1 3次 2个国家 name2 2次 1个国家 cat x1 #!/bin/sh input=$1 let num_of_name=$(awk '{print $1}' $1 | sort -u | wc -l | sed "s/ //g") # loop each name for each_name in $(awk '{print $1}' $1 | sort -u) do num_of_entry_for_this_name=$(grep ^${each_name} $1 | wc -l | sed "s/ //g") num_of_country_for_this_name=$(grep ^${each_name} $1 | cut -f2 -d' ' | sort -u | wc -l | sed "s/ //g") echo "${each_name} ${num_of_entry_for_this_name}次 ${num_of_country_for_this_name}个国家" done exit 0 ================================================================ 假设数据存在档案input_data,栏与栏之间是一个空白分开。 执行结果如下: $ cat input_data name1 china name1 japan name1 china name2 china name2 china $ x2 input_data name1 3次 2个国家 name2 2次 1个国家
    最新回复(0)