这是我第一次在堆栈溢出上发帖,主要是在寻找解决方案和阅读帖子之后。我正在尝试使用 bash 运行一个循环,因此我可以使用 ext .u.clean 对一堆不同的文件进行字符串搜索我想在这些文件中查找字符串“H#”或“h#” # 为 1-28,并以字符串中搜索到的数字输出到文件。我在两个字段($5 和 $0)中进行了两次单独的搜索,我想将唯一匹配的总数输出到文件“temp”#.txt。在此之后,我想对文件中输入的两个数字进行一些数学运算。到目前为止,我已经做到了这一点:
for i in {1..28}; do
awk -v var="$i" -F"\t" ' $19 ~ "_[hH]"var {print $0}' */*.u.clean | \
sort | uniq | wc -l > 'temp'$i'.txt' | \
awk -v var="$i" -F"\t" ' $19 ~ "_[hH]"var {print $5}' */*.u.clean | \
sort | uniq | wc -l >> 'chris'$i'.txt'
done
问题是这些数字是错误的。我总共得到 28 个“temp”#“.txt”文件,但输入的字数不是正确的。我也不知道如何进行数学运算,我有文件,里面有数字。有人可以帮助我或指出正确的方向吗?谢谢你的帮助。
编辑:
以下是一些输入可能的样子:
112 E 03 294168 FBLN7_rs335586251.5 GG 01/23/2013
2 3 VSD 控制 130123_CR_CH5_H26 1 A.保守17 D 11 294319 FBLN7_rs335586251.5 GG 06/26/2012
2 3 VSD 控制
120626_CR_CH5_H3 1 A.保守22 B 01 294703 FBLN7_rs335586251.5 GG 06/26/2012
2 2 VSD 控制
120626_CR_CH5_H4 1 A.保守103 A 07 295033 FBLN7_rs335586251.5 GG 01/23/2013
2 1 VSD 控制
130123_CR_CH5_H23 1 A.保守44 G 07 295119 Tbx5_rs61931008.5 GG
07/11/2012 2 5 ASD 控制
120711_CR_CH5_H12 1 A.保守42 H 12 295201 JAG1_rs1232607.5 GG
07/11/2012 1 2 ASD 控制
120711_CR_CH5_H12 1 A.保守
我正在尝试计算字段 19(带有文本 Tbx5_rs61931008.5.5 的字段)中出现的次数,每次出现 H'#' 时 # 为 1-28,将该数字输出到单独的文件中每个 H#。然后我想知道这些匹配的 H#,字段 5 有多少个独特的场合,并将该数字输出到每个 H# 的同一文件中。我希望这很清楚,并让我知道它不是。谢谢。