这是 unix 的后续:用另一个文件中的单个值替换一个文件中的一整列
我试图用另一个文件 (file2) 中的一个特定值替换文件 (file1) 的一列。
file1 的结构如下:
HETATM 8 P FAD B 600 98.424 46.244 76.016 1.00 18.65
HETATM 9 O1P FAD B 600 98.634 44.801 75.700 1.00 17.69 O
HETATM 10 O2P FAD B 600 98.010 46.640 77.387 1.00 15.59 O
HETATM 11 H5B1 FAD B 600 96.970 48.950 72.795 1.00 -1.00 H
Run Code Online (Sandbox Code Playgroud)
我绝对需要保留这个结构。
file2 的结构如下:
1 27, -81.883, 4.0
5 48, -67.737, 20.0
1 55, -72.923, 4.0
4 27, -62.64, 16.0
Run Code Online (Sandbox Code Playgroud)
我注意到 awk 是“行为不当”并且丢失了我的 …
我有一个包含行分隔文本的文件:
GCAACACGGTGGGAGCACGTCAACAAGGAGTAATTCTTCAAGACCGTTCCAAAAACAGCATGCAAGAGCG
GTCGAGCCTAGTCCATCAGCAAATGCCGTTTCCAGCAATGCAAAGAGAACGGGAAGGTATCAGTTCACCG
GTGACTGCCATTACTGTGGACAAAAAGGGCACATGAAGAGAGACTGTGACAAGCTAAAGGCAGATGTAGC
Run Code Online (Sandbox Code Playgroud)
由此,我想提取 10 到 80 个字符,因此:
TGGGAGCACGTCAACAAGGAGTAATTCTTCAAGACCGTTCCAAAAACAGCATGCAAGAGCG
GTCGAGCCT
Run Code Online (Sandbox Code Playgroud)
我找到了如何计算文件中的字符数:
wc -m file
Run Code Online (Sandbox Code Playgroud)
以及如何获取每行的字符数:
awk '{print substr($0,2,6)}' file
Run Code Online (Sandbox Code Playgroud)
但我找不到让字符 10 到 80 的方法。
换行符不算作字符。
有任何想法吗?
是的,这是来自全基因组的 DNA。我从包含不同支架(在本例中为 10 和 11)的 fasta 文件中提取了这一点 DNA,使用
awk '/scaffold_10\>/{p=1;next} /scaffold_11/{p=0;exit} p'
Run Code Online (Sandbox Code Playgroud)
最终,我想要一个简单的命令来从指定的脚手架中获取 100 到 800(或类似的)字符。
编辑:问题在这里继续:使用 gff2fasta 而不是 bash 脚本从全基因组中获取部分 DNA 序列