假设,我有一个名为的文件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.txt
and中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")