awk是按行处理的

awk是按行处理的

awk ‘BEGIN{OFS=FS="\t"}{if($6=="+") {tss=$2; tss_up=tss-1000; tss_dw=tss+200;} else {tss=$3; tss_up=tss-200; tss_dw=tss+1000;} if(tss_up<0) tss_up=0;print $1, tss_up, tss_dw,$4,$5,$6;}’ test.bed > grc.bed
@@@@@@@@@@@@@本来这行只有一个符号,但是\t还是把它分割成,并且前面两个赋值了,也可以看出awk是按行处理的

yyp@xsy-TravelMate-P246M-MG:~$ cat test.bed

The MIT License

Copyright © 2017 Genome Research Ltd.

Permission is hereby granted, free of charge, to any person obtaining a copy

of this software and associated documentation files (the “Software”), to deal

in the Software without restriction, including without limitation the rights

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell

copies of the Software, and to permit persons to whom the Software is

furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in

all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN

THE SOFTWARE.

Bed format information: https://genome.ucsc.edu/FAQ/FAQformat.html

X 1000 1100 X1 500 + 1000 1100 255,0,0
X 1200 1300 X2 500 + 1200 1300 255,0,0
X 1400 1500 X3 500 + 1400 1500 255,0,0
X 1600 1700 X4 500 + 1600 1700 255,0,0
X 1800 1900 X5 500 + 1800 1900 255,0,0
Y 100000 100900 Y1 600 + 100000 100900 255,0,0
Y 100200 100700 Y2 600 + 100200 100700 255,0,0
Y 100400 100500 Y3 600 + 100400 100500 255,0,0
Y 100600 100700 Y4 600 + 100600 100700 255,0,0
Y 100800 100900 Y5 600 + 100800 100900 255,0,0
Z 100000 100001 Z1 600 + 100000 100001 255,0,0
Z 100002 100003 Z2 600 + 100002 100003 255,0,0
Z 100004 100005 Z3 600 + 100004 100005 255,0,0
Z 100006 100007 Z4 600 + 100006 100007 255,0,0
Z 100008 100009 Z5 600 + 100008 100009 255,0,0

yyp@xsy-TravelMate-P246M-MG:~$ awk ‘BEGIN{OFS=FS="\t"}{if($6=="+") {tss=$2; tss_up=tss-1000; tss_dw=tss+200;} else {tss=$3; tss_up=tss-200; tss_dw=tss+1000;} if(tss_up<0) tss_up=0;print $1, tss_up, tss_dw,$4,$5,$6;}’ test.bed > grc.bed

yyp@xsy-TravelMate-P246M-MG:~$ cat grc.bed

The MIT License 0 1000

0 1000

Copyright © 2017 Genome Research Ltd. 0 1000

0 1000

Permission is hereby granted, free of charge, to any person obtaining a copy 0 1000

of this software and associated documentation files (the “Software”), to deal 0 1000

in the Software without restriction, including without limitation the rights 0 1000

to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 0 1000

copies of the Software, and to permit persons to whom the Software is 0 1000

furnished to do so, subject to the following conditions: 0 1000

0 1000

The above copyright notice and this permission notice shall be included in 0 1000

all copies or substantial portions of the Software. 0 1000

0 1000

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 0 1000

IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 0 1000

FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 0 1000

AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 0 1000

LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 0 1000

OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 0 1000

THE SOFTWARE. 0 1000

0 1000

Bed format information: https://genome.ucsc.edu/FAQ/FAQformat.html 0 1000

0 1000 @@@@@@@@@@@@@本来这行只有一个符号,但是\t还是把它分割成,并且前面两个赋值了,也可以看出awk是按行处理的

X 0 1200 X1 500 +
X 200 1400 X2 500 +
X 400 1600 X3 500 +
X 600 1800 X4 500 +
X 800 2000 X5 500 +
Y 99000 100200 Y1 600 +
Y 99200 100400 Y2 600 +
Y 99400 100600 Y3 600 +
Y 99600 100800 Y4 600 +
Y 99800 101000 Y5 600 +
Z 99000 100200 Z1 600 +
Z 99002 100202 Z2 600 +
Z 99004 100204 Z3 600 +
Z 99006 100206 Z4 600 +
Z 99008 100208 Z5 600 +

你可能感兴趣的:(Linux,awk)