gpt4 book ai didi

bash - 从文件中提取数据

转载 作者:行者123 更新时间:2023-11-29 09:30:21 25 4
gpt4 key购买 nike

我有一些文件如下。

文件1.txt

145 THR  P Dl   -91.52   173.90   179.36    66.67   999.99   999.99   999.99
146 SER C Cl -125.16 155.03 178.68 67.76 999.99 999.99 999.99
147 MET T Ee -52.96 -35.79 -179.13 -65.71 -58.28 -60.34 999.99
151 TYR C Ck -125.69 145.40 -179.22 -54.88 -59.25 999.99 999.99
156 ARG E Bk -136.06 137.44 -179.24 -55.85 173.98 48.70 -165.24
158 ILE E Dj -98.77 116.42 -179.37 -51.55 -54.79 999.99 999.99

文件2.txt

33 PHE  C Ch  -120.45    41.86  -177.95   -56.61   -71.40   999.99   999.99
36 VAL C Ck -119.10 147.98 -177.54 94.59 999.99 999.99 999.99
41 LEU H Ee -61.78 -50.08 179.33 175.84 50.72 999.99 999.99
42 THR H Ee -60.72 -40.55 178.79 -65.97 999.99 999.99 999.99

如果第三列是H,我需要提取第二列。我用下面的程序来提取这个

awk '{
if (FNR == 1 ) print newline ">" FILENAME
if ($3 == "H") {
newline="\n";
printf $2
}
}
END { printf "\n"}' *.txt>output

上述程序的输出

>file1.txt    
THRSERMETTYRARGILE
>file2.txt
PHEVALLEUTHR

我想使用下表得到这样的输出而不是上面的输出。例如,THR 表示 T,SER 表示 S ....

>file1.txt
TSMYRI
>file2.txt
FVLT



ALA A
ARG R
ASN N
ASP D
CYS C
GLU E
GLN Q
GLY G
HIS H
ILE I
LEU L
LYS K
MET M
PHE F
PRO P
SER S
THR T
TRP W
TYR Y
VAL V

非常感谢您的帮助!!

最佳答案

使用关联数组将每个标签映射到一个缩写。

BEGIN { a["THR"]="T"; a["TYR"]="Y"; ... }

然后简单地 printf a[$2] 而不是 $2

关于bash - 从文件中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com