【发布时间】:2022-01-31 09:38:13
【问题描述】:
我有一个包含许多日志的文件夹。每个日志都有类似的格式。
这是日志1
Finding intermodel H-bonds
Finding intramodel H-bonds
Constraints relaxed by 0.55 angstroms and 40 degrees
Models used:
1.1 SarsCov2_Y6A_nsp5holo_rep1.pdb
6 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
/? SER 144 OG /d UNL 1 S /? SER 144 HG 3.940 3.529
/? HIS 163 NE2 /d UNL 1 S no hydrogen 3.821 N/A
/? GLN 189 NE2 /d UNL 1 O /? GLN 189 1HE2 3.178 2.453
/d UNL 1 N /? THR 25 OG1 /d UNL 1 HN 2.755 2.270
/d UNL 1 N /? CYS 44 O /d UNL 1 HN 3.277 2.501
/d UNL 1 N /? ARG 188 O /d UNL 1 HN 3.056 2.055
日志2
Finding intermodel H-bonds
Finding intramodel H-bonds
Constraints relaxed by 0.55 angstroms and 40 degrees
Models used:
1.1 SarsCov2_06I_nsp5holo_rep1.pdb
4 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
/? THR 26 N /d UNL 1 O /? THR 26 H 3.579 2.754
/? ASN 142 ND2 /d UNL 1 O /? ASN 142 1HD2 3.250 2.324
/d UNL 1 N /? THR 26 O /d UNL 1 H 3.458 2.630
/d UNL 1 N /? HIS 163 NE2 /d UNL 1 HN 3.222 2.456
这是日志3:
Finding intermodel H-bonds
Finding intramodel H-bonds
Constraints relaxed by 0.55 angstroms and 40 degrees
Models used:
1.1 SarsCov2_X7V_nsp5holo_rep1.pdb
2 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
/? GLN 189 NE2 /d UNL 1 O /? GLN 189 1HE2 3.185 2.258
/d UNL 1 N /? LEU 141 O /d UNL 1 HN 2.868 1.958
我需要将所有日志融合在一起,只取从 # H-bonds 开始的字符串,并在同一行中添加初始文件的名称:
这是结合log1 -log 3产生的融合日志:
log 1: 6 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
/? SER 144 OG /d UNL 1 S /? SER 144 HG 3.940 3.529
/? HIS 163 NE2 /d UNL 1 S no hydrogen 3.821 N/A
/? GLN 189 NE2 /d UNL 1 O /? GLN 189 1HE2 3.178 2.453
/d UNL 1 N /? THR 25 OG1 /d UNL 1 HN 2.755 2.270
/d UNL 1 N /? CYS 44 O /d UNL 1 HN 3.277 2.501
/d UNL 1 N /? ARG 188 O /d UNL 1 HN 3.056 2.055
log 2: 4 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
/? THR 26 N /d UNL 1 O /? THR 26 H 3.579 2.754
/? ASN 142 ND2 /d UNL 1 O /? ASN 142 1HD2 3.250 2.324
/d UNL 1 N /? THR 26 O /d UNL 1 H 3.458 2.630
/d UNL 1 N /? HIS 163 NE2 /d UNL 1 HN 3.222 2.456
log3: 2 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
/? GLN 189 NE2 /d UNL 1 O /? GLN 189 1HE2 3.185 2.258
/d UNL 1 N /? LEU 141 O /d UNL 1 HN 2.868 1.958
我尝试过使用 CAT 的简单解决方案,但它不能正常工作,因为在每个日志中我有不同数量的行并且 TAIL 无法正确识别它:
for log in ${results}/*_rep"${i}".log; do
log_name=$(basename "$log" .log)
echo "$log_name" >> ${results}/combined.log
cat $log | tail -n 10 >> ${results}/combined.log
done
我可以在某些特定的表达式中使用 cat 来识别行吗,或者我必须在 CAT 之前使用 SED 从每个初始日志中删除未使用的行??
【问题讨论】: