从文本中删除最后一列(pdb文件保留其原始格式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从文本中删除最后一列(pdb文件保留其原始格式相关的知识,希望对你有一定的参考价值。
由空格HEADER NpXynWT_apo_300K_0001_amber分隔的列文件
ATOM 1 N MET 1 22.849 2.086 17.904 1.00 0.00 N
ATOM 2 CA MET 1 21.710 2.631 17.411 1.00 0.00 C
ATOM 3 C MET 1 20.525 1.737 17.578 1.00 0.00 C
ATOM 4 O MET 1 20.530 0.650 17.113 1.00 0.00 O
ATOM 5 CB MET 1 21.878 2.974 15.929 1.00 0.00 C
ATOM 6 CG MET 1 20.710 3.743 15.334 1.00 0.00 C
ATOM 7 SD MET 1 20.954 4.142 13.593 1.00 0.00 S
ATOM 8 CE MET 1 22.272 5.350 13.704 1.00 0.00 C
ATOM 9 HA MET 1 21.472 3.545 17.955 1.00 0.00 H
ATOM 10 HB2 MET 1 22.788 3.567 15.838 1.00 0.00 H
ATOM 11 HB3 MET 1 22.004 2.033 15.394 1.00 0.00 H
ATOM 12 HG2 MET 1 19.813 3.133 15.439 1.00 0.00 H
ATOM 13 HG3 MET 1 20.589 4.667 15.900 1.00 0.00 H
ATOM 14 HE1 MET 1 23.144 4.895 14.173 1.00 0.00 H
ATOM 15 HE2 MET 1 22.536 5.694 12.704 1.00 0.00 H
ATOM 16 HE3 MET 1 21.939 6.198 14.303 1.00 0.00 H
ATOM 17 H1 MET 1 22.632 1.159 18.243 1.00 0.00 H
ATOM 18 H2 MET 1 23.105 2.667 18.689 1.00 0.00 H
ATOM 19 H3 MET 1 23.471 2.005 17.112 1.00 0.00 H
从这个文件我需要删除最后一列,在输出中的其余列之间保持相同的空格数:HEADER NpXynWT_apo_300K_0001_amber
ATOM 1 N MET 1 22.849 2.086 17.904 1.00 0.00
ATOM 2 CA MET 1 21.710 2.631 17.411 1.00 0.00
ATOM 3 C MET 1 20.525 1.737 17.578 1.00 0.00
ATOM 4 O MET 1 20.530 0.650 17.113 1.00 0.00
ATOM 5 CB MET 1 21.878 2.974 15.929 1.00 0.00
ATOM 6 CG MET 1 20.710 3.743 15.334 1.00 0.00
ATOM 7 SD MET 1 20.954 4.142 13.593 1.00 0.00
ATOM 8 CE MET 1 22.272 5.350 13.704 1.00 0.00
ATOM 9 HA MET 1 21.472 3.545 17.955 1.00 0.00
ATOM 10 HB2 MET 1 22.788 3.567 15.838 1.00 0.00
ATOM 11 HB3 MET 1 22.004 2.033 15.394 1.00 0.00
ATOM 12 HG2 MET 1 19.813 3.133 15.439 1.00 0.00
ATOM 13 HG3 MET 1 20.589 4.667 15.900 1.00 0.00
ATOM 14 HE1 MET 1 23.144 4.895 14.173 1.00 0.00
ATOM 15 HE2 MET 1 22.536 5.694 12.704 1.00 0.00
ATOM 16 HE3 MET 1 21.939 6.198 14.303 1.00 0.00
ATOM 17 H1 MET 1 22.632 1.159 18.243 1.00 0.00
ATOM 18 H2 MET 1 23.105 2.667 18.689 1.00 0.00
ATOM 19 H3 MET 1 23.471 2.005 17.112 1.00 0.00
我想我需要一些SED函数来指示分隔符的类型(空格的数量),列的数量(最后一个)。是否有一些通用的溶剂可以去除任何数量的前一个空格的最后一列?
答案
这适用于gnu sed:
sed -r 's/s+S+$//' file
另一答案
$ sed 's/ *[^ ]* *$//' file
ATOM 1 N MET 1 22.849 2.086 17.904 1.00 0.00
ATOM 2 CA MET 1 21.710 2.631 17.411 1.00 0.00
ATOM 3 C MET 1 20.525 1.737 17.578 1.00 0.00
ATOM 4 O MET 1 20.530 0.650 17.113 1.00 0.00
ATOM 5 CB MET 1 21.878 2.974 15.929 1.00 0.00
ATOM 6 CG MET 1 20.710 3.743 15.334 1.00 0.00
ATOM 7 SD MET 1 20.954 4.142 13.593 1.00 0.00
ATOM 8 CE MET 1 22.272 5.350 13.704 1.00 0.00
ATOM 9 HA MET 1 21.472 3.545 17.955 1.00 0.00
ATOM 10 HB2 MET 1 22.788 3.567 15.838 1.00 0.00
ATOM 11 HB3 MET 1 22.004 2.033 15.394 1.00 0.00
ATOM 12 HG2 MET 1 19.813 3.133 15.439 1.00 0.00
ATOM 13 HG3 MET 1 20.589 4.667 15.900 1.00 0.00
ATOM 14 HE1 MET 1 23.144 4.895 14.173 1.00 0.00
ATOM 15 HE2 MET 1 22.536 5.694 12.704 1.00 0.00
ATOM 16 HE3 MET 1 21.939 6.198 14.303 1.00 0.00
ATOM 17 H1 MET 1 22.632 1.159 18.243 1.00 0.00
ATOM 18 H2 MET 1 23.105 2.667 18.689 1.00 0.00
ATOM 19 H3 MET 1 23.471 2.005 17.112 1.00 0.00
*
匹配零个或多个空格,[^ ]*
匹配零个或多个任何字符但空格,- qazxsw poi将qazxsw poi与输入行匹配,并用
s/regexp/replacement/
替换匹配的子字符串。
样本中有尾随空格,上面的命令也将删除它们。如果您的实际输入没有,请使用:
regexp
如果这些尾随空格实际上是回车(即您的输入具有Windows行结尾):
replacement
另一答案
如果sed 's/ *[^ ]*$//' file
文件中的数据,试过gnu sed:
sed 's/ *[^ ]*
$//' file
试过gnu awk:
d
以上是关于从文本中删除最后一列(pdb文件保留其原始格式的主要内容,如果未能解决你的问题,请参考以下文章