使用bash从行的不同列获取特定于Grep的模式
我有一些结果,我需要得到如下模式:“../”、“0/1”、“0/0”。使用bash从行的不同列获取特定于Grep的模式,bash,design-patterns,Bash,Design Patterns,我有一些结果,我需要得到如下模式:“../”、“0/1”、“0/0”。 如何使用bash实现这一点? 谢谢 怎么样 grep -o './.' <<< "$results" grep-o./.我会使用perl 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=6
如何使用bash实现这一点?
谢谢 怎么样
grep -o './.' <<< "$results"
grep-o./.我会使用perl
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
这可能适合您:
sed 'G;:a;/^\n,*/{s///;;b};s/^\(.\/.\)\(.*\)/\2,\1/;ta;s/.//;ba' file
./.,0/1,./.,0/1,0/0
您的意思是只想检索包含斜杠的列吗?另外--13/20
应该以4位或3/2
的形式返回吗?还是根本不呢?谢谢。看起来不错。但是我怎样才能做到每5个。同一行?王,你试过了吗?它就是这样做的。
sed 'G;:a;/^\n,*/{s///;;b};s/^\(.\/.\)\(.*\)/\2,\1/;ta;s/.//;ba' file
./.,0/1,./.,0/1,0/0