0

いくつかの結果があり、「./.」、「0/1」、「0/0」のようなパターンを取得する必要があります。
bashを使用してこれを行うにはどうすればよいですか?
ありがとう。

G   A   89.43   PASS    AB=0.427;AC=2;AF=0.33;AN=6;BaseQRankSum=-1.468;DP=12;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=0.6373;MQ=60.00;MQ0=0;MQRankSum=0.536;QD=12.78;ReadPosRankSum=1.134;SB=-26.82;set=variant2    GT:AD:DP:GQ:PL  ./. 0/1:2,3:5:67.41:102,0,67    ./. 0/1:1,1:2:25.53:26,0,36 0/0:5,0:5:15.05:0,15,200
4

3 に答える 3

2

どうですか

grep -o './.' <<< "$results"
于 2012-04-24T20:29:40.183 に答える
0

私はパールを使用します。

echo "G   A   89.43   PASS    AB=0.427;AC=2;AF=0.33;AN=6;BaseQRankSum=-1.468;DP=12;Dels=0.00;FS=0.000;HRun=1;HaplotypeScore=0.6373;MQ=60.00;MQ0=0;MQRankSum=0.536;QD=12.78;ReadPosRankSum=1.134;SB=-26.82;set=variant2    GT:AD:DP:GQ:PL  ./. 0/1:2,3:5:67.41:102,0,67    ./. 0/1:1,1:2:25.53:26,0,36 0/0:5,0:5:15.05:0,15,200" \
  | perl -lne 'my @matches = m{(./.)}g; print join "\n", @matches;'

これは以下を返します:

./.
0/1
./.
0/1
0/0
于 2012-04-24T20:31:45.127 に答える
0

これはあなたのために働くかもしれません:

sed 'G;:a;/^\n,*/{s///;;b};s/^\(.\/.\)\(.*\)/\2,\1/;ta;s/.//;ba' file
./.,0/1,./.,0/1,0/0
于 2012-04-24T21:12:31.053 に答える