Awk将处理两个文件的结果合并为一个文件
发布时间:2020-12-14 01:43:02 所属栏目:Linux 来源:网络整理
导读:我使用awk从两个不同的文件中提取和计算信息,我想将结果合并到列中的单个文件中(例如,第1列和第2列中第一个文件的输出以及第3和第4列中第二个文件的输出) ). 输入文件包含: 文件1 SRR513804.1218581HWI-ST695_116193610:4:1307:17513:49120 SRR513804.16872
我使用awk从两个不同的文件中提取和计算信息,我想将结果合并到列中的单个文件中(例如,第1列和第2列中第一个文件的输出以及第3和第4列中第二个文件的输出) ).
输入文件包含: 文件1 SRR513804.1218581HWI-ST695_116193610:4:1307:17513:49120 SRR513804.16872HWI ST695_116193610:4:1101:7150:72196 SRR513804.2106179HWI- ST695_116193610:4:2206:10596:165949 SRR513804.1710546HWI-ST695_116193610:4:2107:13906:128004 SRR513804.544253 文件2 >SRR513804.1218581HWI-ST695_116193610:4:1307:17513:49120 TTTTGTTTTTTCTATATTTGAAAAAGAAATATGAAAACTTCATTTATATTTTCCACAAAG AATGATTCAGCATCCTTCAAAGAAATTCAATATGTATAAAACGGTAATTCTAAATTTTAT ACATATTGAATTTCTTTGAAGGATGCTGAATCATTCTTTGTGGAAAATATAAATGAAGTT TTCATATTTCTTTTTCAAAT 要解析第一个文件,我这样做: awk ' { s = NF center = $1 } { printf "%st %dn",center,s } ' file1 要解析第二个文件,我这样做: awk ' /^>/ { if (count != "") printf "%st %dn",seq_id,count count = 0 seq_id = $0 next } NF { long = length($0) count = count+long } END{ if (count != "") printf "%st %dn",count } ' file2 我的临时解决方案是在第二步中创建一个时间和覆盖.获得此输出有一种更“优雅”的方式吗? 解决方法
我对这个要求并不完全清楚,如果你能更新问题,我们可以帮助改进答案.但是,根据我收集的内容,您希望总结两个文件的输出.我假设两个文件中的内容按顺序排列.如果不是这样,那么我们将不得不在打印摘要时添加其他检查.
script.awk的内容(重用大部分现有代码): NR==FNR { s[NR] = NF center[NR] = $1 next } /^>/ { seq_id[++y] = $0 ++i next } NF { long[i] += length($0) } END { for(x=1;x<=length(s);x++) { printf "%st %dt %dn",center[x],s[x],long[x] } } 测试: $cat file1 SRR513804.1218581HWI-ST695_116193610:4:1307:17513:49120 SRR513804.16872HWI ST695_116193610:4:1101:7150:72196 SRR513804.2106179HWI- ST695_116193610:4:2206:10596:165949 SRR513804.1710546HWI-ST695_116193610:4:2107:13906:128004 SRR513804.544253 $cat file2 >SRR513804.1218581HWI-ST695_116193610:4:1307:17513:49120 TTTTGTTTTTTCTATATTTGAAAAAGAAATATGAAAACTTCATTTATATTTTCCACAAAG AATGATTCAGCATCCTTCAAAGAAATTCAATATGTATAAAACGGTAATTCTAAATTTTAT ACATATTGAATTTCTTTGAAGGATGCTGAATCATTCTTTGTGGAAAATATAAATGAAGTT TTCATATTTCTTTTTCAAAT $awk -f script.awk file1 file2 SRR513804.1218581HWI-ST695_116193610:4:1307:17513:49120 4 200 ST695_116193610:4:2206:10596:165949 3 0 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |