如何从文本文件中提取列并将其保存到另一个文本文件中?

如何从文本文件中提取列并将其保存到另一个文本文件中?

假设,我有一个名为的文件source.txt,其中包含以下数据:

3LWXA       199  XRAY        1.100    0.12    0.14
3LX3A       180  XRAY        1.550    0.15    0.17
3LY0A       364  XRAY        1.399    0.17    0.19
3LYDA       161  XRAY        1.450    0.17    0.19
3LYEA       307  XRAY        1.300    0.13    0.17
3LYHB       126  XRAY        1.600    0.17    0.21
3LYPA       215  XRAY        1.600    0.18    0.21
3M07A       618  XRAY        1.400    0.15    0.17
3M0FA       213  XRAY        1.600    0.21    0.22

我想从中提取 {1st} 和 {1st, 2nd} 列source.txt并将它们保存到one.txtand中two.txt

我怎样才能做到这一点?


注意我发现这个线程但这没有帮助。

答案1

也试试

awk '{print $1 > "one.txt"; print $1,$2 > "two.txt"}' source.txt

答案2

使用awk

awk '{ print $1 }' source.txt > one.txt
awk '{ print $1,  $2 }' source.txt > two.txt

答案3

利用GNU sed启用的扩展正则表达式功能(-E),我们可以使用以下内容:

sed -En 's/\S+/&\n/2
  s/\n.*//wfile2
  s/\s.*//wfile1
' file

答案4

#!/usr/bin/python
import re
res=re.compile(r'\s+')
fil=open('source.txt','r')
firs=open('one.txt','w')
sec=open('two.txt','w')
for f in fil:
    splitcomp=re.sub(res," ",f).strip().split(' ')
    firs.write(splitcomp[0].strip() + "\n")
    seondfilecon="{0}\t{1}".format(splitcomp[0],splitcomp[1])
    sec.write(seondfilecon.strip()+"\n")

相关内容