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
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")