mfk*_*534 2 python unix perl awk sed
我有三个文件,每个文件中的信息不会以任何方式重叠 - 但是,它们需要以特定的方式相互合并才能有用.
第一个文件在后两个文件中是唯一的,它们以相同的方式设置.文件1看起来像这样:
rs101 12 126890980 A G
rs102 4 114553253 A C
rs103 9 172776204 C T
Run Code Online (Sandbox Code Playgroud)
文件2看起来像这样:
1 178 0.12 0.26 0.02
1 1458 0.35 0.37 0.021
1 318 0.99 0.105 0.08
Run Code Online (Sandbox Code Playgroud)
文件3看起来像这样:
1 3567 0.78 0.67 0.005
0 0 0 0 0
1 3567 0.34 -0.15 0.001
Run Code Online (Sandbox Code Playgroud)
我想要一个脚本,将这些文件合并到文件中以生成第三个文件:
rs101 12 126890980 A G
1 178 0.12 0.26 0.02
1 3567 0.78 0.67 0.005
rs102 4 114553253 A C
1 1458 0.35 0.37 0.02
0 0 0 0 0
rs103 9 172776204 C T
1 318 0.99 0.105 0.08
1 3567 0.34 -0.15 0.001
Run Code Online (Sandbox Code Playgroud)
问题是如果这些文件合并不正确,它们在运行分析时将无法提供正确的信息 - 我可以在每个文件的末尾添加一个唯一的列(例如,rs#可以在文件一中打印两次(一次)在第一列中,一次在最后一列中),然后相应的rs号可以添加到文件2和3的末尾的另一列中.然后我可以手动检查合并是否正确发生.任何见解或建议表示赞赏!
一种方式,使用paste:
paste -d "\n" file1.txt file2.txt file3.txt
Run Code Online (Sandbox Code Playgroud)
结果:
rs101 12 126890980 A G
1 178 0.12 0.26 0.02
1 3567 0.78 0.67 0.005
rs102 4 114553253 A C
1 1458 0.35 0.37 0.021
0 0 0 0 0
rs103 9 172776204 C T
1 318 0.99 0.105 0.08
1 3567 0.34 -0.15 0.001
Run Code Online (Sandbox Code Playgroud)
这假设您的每个输入文件包含相同数量的行.要检查每个文件(从而避免潜在的合并问题),请使用wc:
wc -l file1.txt file2.txt file3.txt
结果:
3 file1.txt
3 file2.txt
3 file3.txt
9 total
Run Code Online (Sandbox Code Playgroud)
HTH
| 归档时间: |
|
| 查看次数: |
150 次 |
| 最近记录: |