小编gug*_*ugy的帖子

替换列并保留间距

这是 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 是“行为不当”并且丢失了我的 …

awk text-processing columns

6
推荐指数
1
解决办法
4476
查看次数

unix:在文件中获取 10 到 80 个字符

我有一个包含行分隔文本的文件:

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 序列

awk text-processing wc

4
推荐指数
3
解决办法
1073
查看次数

标签 统计

awk ×2

text-processing ×2

columns ×1

wc ×1