如何统计values.txt文件中每行相同索引位置的字符V出现次数?
按位置统计字符V出现次数的解决方案
核心思路:你需要的是按列(每行的对应位置)统计所有行该位置为V的次数,而非统计每行的V总数,切换遍历维度就能解决问题。以下是两种实用实现方式:
Python 脚本实现
适合需要灵活扩展或使用Python环境的场景:
# 读取values.txt文件,过滤空行并去除换行符 with open('values.txt', 'r') as f: lines = [line.strip() for line in f if line.strip()] # 初始化统计数组,长度与单行字符数一致 v_counts = [0] * len(lines[0]) # 遍历每个字符位置 for pos in range(len(v_counts)): # 统计所有行该位置的V数量 for line in lines: if line[pos] == 'V': v_counts[pos] += 1 # 输出结果 print(v_counts)
运行后直接输出目标结果:[10, 10, 7, 12, 8, 6, 10, 4, 10, 6, 9, 8, 7, 11, 8, 10, 6]
Shell 命令实现(awk)
适合命令行快速处理的场景,无需编写脚本:
awk '{ # 遍历当前行的每个字符位置 for (i=1; i<=length($0); i++) { if (substr($0, i, 1) == "V") counts[i]++ } } END { # 格式化输出结果 printf "[" for (i=1; i<=length(counts); i++) { printf "%d%s", counts[i], (i<length(counts)?", ":"") } printf "]\n" }' values.txt
执行该命令后,终端会直接打印出目标统计列表。
内容的提问来源于stack exchange,提问作者Iz.243
相关产品推荐
相关产品推荐

