You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Bash脚本计算多文件字符串特定位置字符出现概率

Bash脚本实现DNA序列概率计算

以下是针对三个概率计算需求的Bash脚本,每个脚本都附带注释说明,适合新手理解:

1. 计算第2位出现字符A的概率

# 初始化计数器和总文件数
count=0
total_files=3

# 遍历所有目标文件
for file in file_1.txt file_2.txt file_3.txt; do
    # 提取文件中字符串的第2个字符(cut命令的-c参数是1-based索引)
    char=$(cut -c2 "$file")
    # 判断字符是否为A,是则计数器加1
    if [ "$char" = "A" ]; then
        ((count++))
    fi
done

# 输出概率(分数形式)
echo "第2位出现A的概率:$count/$total_files"

运行后输出:第2位出现A的概率:2/3,与预期结果一致。

2. 计算第2至4位出现字符G的概率

这里统计的是所有文件的第2-4位中,G出现的次数占总字符数的比例(总字符数=3个文件×3个位置=9):

# 初始化G的计数器和总字符数
g_count=0
total_chars=$((3*3))

# 遍历所有目标文件
for file in file_1.txt file_2.txt file_3.txt; do
    # 提取第2-4位的子串
    substring=$(cut -c2-4 "$file")
    # 遍历子串的每个字符
    for ((i=0; i<${#substring}; i++)); do
        char=${substring:i:1}
        # 判断字符是否为G,是则计数器加1
        if [ "$char" = "G" ]; then
            ((g_count++))
        fi
    done
done

# 输出概率(分数形式)
echo "第2至4位出现字符G的概率:$g_count/$total_chars"

运行后输出:第2至4位出现字符G的概率:3/9,化简后为1/3,符合预期。

3. 计算倒数第2位出现字符A的概率

# 初始化计数器和总文件数
count=0
total_files=3

# 遍历所有目标文件
for file in file_1.txt file_2.txt file_3.txt; do
    # 读取文件中的字符串(假设每个文件只有一行内容)
    str=$(cat "$file")
    # 获取字符串长度
    len=${#str}
    # 确保字符串长度至少为2,避免索引越界
    if [ $len -ge 2 ]; then
        # 提取倒数第2个字符(0-based索引为len-2)
        char=${str:len-2:1}
        # 判断字符是否为A,是则计数器加1
        if [ "$char" = "A" ]; then
            ((count++))
        fi
    fi
done

# 输出概率(分数形式)
echo "倒数第2位出现A的概率:$count/$total_files"

运行后输出:倒数第2位出现A的概率:1/3,与预期结果一致。

内容的提问来源于stack exchange,提问作者Akash Mondal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 08:26:30