【发布时间】:2014-03-25 05:28:30
【问题描述】:
我正在尝试解析 DNA 蛋白质文件。我只想提取一定数量的信息。我只想解析该行以“ATOM”开头并且在第四列的末尾有 G、A、T、C 之一。例如,在 DG 下面的 sn-p 中会被解析,因为它最后有一个 G。然后将该行保存在文件中。我正在使用 bash。你会用什么来做到这一点? grep、find、sed、awk 还是某种正则表达式?
感谢您的帮助!
HETATM 103 HG22 MVA A 8 4.999 -1.260 2.090 1.00 0.00 H
HETATM 104 HG23 MVA A 8 5.639 -2.810 2.604 1.00 0.00 H
TER 105 MVA A 8
ATOM 106 O5' DG C 11 -12.710 1.571 -11.945 1.00 0.00 O
ATOM 107 C5' DG C 11 -13.491 2.438 -11.111 1.00 0.00 C
原问题的补充:
计算总行数和单个 G、A、T、C?将统计的总数输出为 Total Lines、TOTAL G、TOTAL T、TOTAL A、TOTAL C 的文件。
【问题讨论】:
-
如何将代码放入 cmets 中??
-
#!/bin/bash FILENAME=$1 count=0 while read LINE do let count++ # echo "$count $LINE" VARIABLE="COMPND DNA" VARIABLEDNA="DNA" # 这是常规的表达式: if echo "$LINE" | grep -q "$VARIABLEDNA";然后在读取 LINE 时执行 if echo `expr match "$LINE" '(.[D]*[A].)' then echo 'match' done break echo "$count $LINE" fi done
-
无论如何我都不需要处理我的代码。我需要使用 bash。我认为我的表达方式不适合寻找 DNA 链。我可以解析每一行并找到 ATOM,但是在我找到“ATOM”行之后,如何在距离行首四处的单词的末尾找到 G、C、A、T。
-
关于超级用户的同样问题:superuser.com/q/720655/4714
-
我在 SuperUSer 没有得到答案,由于这里有讨论,我关闭它。
标签: regex bash parsing sed awk