我编写了一个脚本,以便从列表中筛选出一些特定的数据,现在我想使该脚本"通用".我遇到的问题是awk中的变量.原始脚本中的这一行是:

awk '{if ($2>127931962 && $3<127932966 || $2>127996058 && $3<127997050 || $2>128098961 && $3<128099960) print}'  file.input > file.output

我想要的是让用户能够在括号中输入他们自己的参数,这样他们就可以根据需要过滤数据.

所以我try 引入一个变量,用户可以在其中输入括号内的信息,但awk没有过滤掉这些信息.我试过这个

read region
awk -v reg="$region" '{if (reg) print}' file.input > file.output

当我运行它时,我写下:$2>127931962 && $3<127932966 || $2>127996058 && $3<127997050 || $2>128098961 && $3<128099960,作为Region变量的输入,但是输出文件与它应该的大不相同.

这是输出文件外观的简短版本(与输入文件相同)

chr8    127930849       127930868
chr8    127931470       127931489
chr8    127931566       127931591
chr8    127931835       127931864
chr8    127932730       127932832
chr8    127932932       127932959
chr8    127933558       127933606
chr8    127933643       127933703
chr8    127933933       127933964
chr8    127934398       127934441
chr8    127938801       127938829
chr8    127939525       127939567
chr8    127939831       127939861
chr8    127939982       127940052
chr8    127940599       127940667
chr8    127940793       127940801
chr8    127941253       127941281
chr8    127942688       127942701
chr8    127943013       127943087
chr8    127943120       127943150
chr8    127943869       127943898
chr8    127943970       127944025
chr8    127944110       127944145
chr8    127944601       127944653
chr8    127945071       127945107
chr8    127945219       127945251
chr8    127945476       127945505
chr8    127946041       127946068
chr8    127946929       127946959
chr8    127947647       127947726
chr8    127948225       127948260
chr8    127948305       127948329
chr8    127948817       127948819
chr8    127949074       127949151
chr8    127949778       127949840
chr8    127949860       127949882
chr8    127949974       127949985
chr8    127950185       127950200
chr8    127950597       127950630
chr8    127951362       127951398
chr8    127951432       127951490
chr8    127951575       127951612
chr8    127951699       127951744
chr8    127953387       127953400
chr8    127953575       127953603
chr8    127953872       127953918
chr8    127953944       127953967
chr8    127954312       127954357
chr8    127954711       127954759
chr8    127955363       127955435
chr8    127956912       127956956
chr8    127957652       127957700
chr8    127957763       127957845
chr8    127957861       127957923
chr8    127958039       127958099
chr8    127958612       127958631
chr8    127959113       127959137
chr8    127959790       127959859
chr8    127960003       127960043
chr8    127960134       127960150
chr8    127960209       127960253
chr8    127960534       127960575
chr8    127960673       127960676
chr8    127960964       127960998
chr8    127961096       127961131
chr8    127961245       127961260
chr8    127961443       127961554
chr8    127961636       127961687
chr8    127961806       127961833
chr8    127962640       127962659
chr8    127962947       127963009
chr8    127963630       127963650
chr8    127963689       127963857
chr8    127963983       127964056
chr8    127964314       127964351
chr8    127964845       127964881
chr8    127965043       127965078
chr8    127965436       127965472
chr8    127965715       127965742
chr8    127965780       127965825
chr8    127966280       127966348
chr8    127966429       127966438
chr8    127966509       127966541
chr8    127966902       127966941
chr8    127967110       127967124
chr8    127967165       127967185
chr8    127967328       127967369
chr8    127968417       127968454
chr8    127969238       127969298
chr8    127969444       127969480
chr8    127971434       127971460
chr8    127971888       127971969
chr8    127974432       127974478
chr8    127975488       127975521
chr8    127975897       127975937
chr8    127976398       127976414
chr8    127979577       127979644
chr8    127980065       127980114
chr8    127980370       127980409
chr8    127981172       127981208
chr8    127981779       127981795
chr8    127983603       127983628
chr8    127983894       127983907
chr8    127986216       127986259
chr8    127989050       127989084
chr8    127989396       127989467
chr8    127989479       127989542
chr8    127990103       127990133
chr8    127990222       127990230
chr8    127990364       127990369
chr8    127990496       127990526
chr8    127990577       127990627
chr8    127990851       127990913
chr8    127992550       127992592
chr8    127993294       127993328
chr8    127993675       127993694
chr8    127994293       127994309
chr8    127994688       127994759
chr8    127996207       127996249
chr8    127996269       127996290
chr8    127996382       127996388
chr8    127996563       127996584
chr8    127996730       127996750
chr8    127996777       127996855
chr8    127996868       127996875
chr8    127997078       127997092
chr8    127998007       127998021
chr8    127999104       127999140
chr8    127999332       127999412
chr8    128001461       128001467
chr8    128001985       128002075
chr8    128004411       128004443
chr8    128005521       128005594
chr8    128005681       128005711
chr8    128006503       128006542
chr8    128008720       128008846
chr8    128009697       128009699
chr8    128009849       128009875
chr8    128010431       128010480
chr8    128010507       128010536
chr8    128010651       128010674
chr8    128010764       128010837
chr8    128011861       128011881
chr8    128011947       128011979
chr8    128012172       128012222
chr8    128012728       128012739
chr8    128013389       128013438
chr8    128013625       128013632
chr8    128014048       128014070
chr8    128014181       128014216
chr8    128014274       128014357
chr8    128014526       128014583
chr8    128014659       128014702
chr8    128014741       128014764
chr8    128015013       128015049
chr8    128016027       128016076
chr8    128016455       128016468
chr8    128017138       128017171
chr8    128017283       128017317
chr8    128017459       128017488
chr8    128017614       128017648
chr8    128017770       128017781
chr8    128017784       128017827
chr8    128018091       128018130
chr8    128018374       128018425
chr8    128018549       128018583
chr8    128018606       128018730
chr8    128019372       128019433
chr8    128019701       128019738
chr8    128019917       128019942
chr8    128020493       128020519
chr8    128020776       128020815
chr8    128020955       128020970
chr8    128020998       128021043
chr8    128021096       128021119
chr8    128021653       128021664
chr8    128021804       128021856
chr8    128021874       128021918
chr8    128022132       128022189
chr8    128022236       128022250
chr8    128022459       128022473
chr8    128022617       128022660
chr8    128024100       128024144
chr8    128024825       128024832
chr8    128025115       128025156
chr8    128025342       128025402
chr8    128025965       128026009
chr8    128026746       128026768
chr8    128027151       128027205
chr8    128028047       128028061
chr8    128028426       128028458
chr8    128028759       128028804
chr8    128028863       128028898
chr8    128030421       128030506
chr8    128030604       128030626
chr8    128030670       128030679
chr8    128031229       128031304
chr8    128031413       128031486
chr8    128032121       128032136
chr8    128032284       128032301
chr8    128032506       128032511
chr8    128032576       128032579
chr8    128032746       128032779
chr8    128032980       128033047
chr8    128033329       128033381
chr8    128033951       128033977
chr8    128034307       128034325
chr8    128034513       128034554
chr8    128034940       128034986
chr8    128035280       128035297
chr8    128035749       128035824
chr8    128035896       128035924
chr8    128036506       128036545
chr8    128036586       128036619
chr8    128036713       128036739
chr8    128036989       128037053
chr8    128037311       128037326
chr8    128037606       128037627
chr8    128037990       128038045
chr8    128038372       128038413
chr8    128038491       128038541
chr8    128038705       128038775
chr8    128039144       128039172
chr8    128039888       128039928
chr8    128040111       128040146
chr8    128041045       128041087
chr8    128041125       128041160
chr8    128041858       128041878
chr8    128041910       128041958
chr8    128042351       128042472
chr8    128043440       128043476
chr8    128044241       128044261
chr8    128044844       128044897
chr8    128045167       128045193
chr8    128045384       128045419
chr8    128046080       128046111
chr8    128047597       128047613
chr8    128048745       128048794
chr8    128049126       128049174
chr8    128049176       128049192
chr8    128049444       128049483
chr8    128051155       128051190
chr8    128051297       128051347
chr8    128051464       128051486
chr8    128052121       128052127
chr8    128052649       128052706
chr8    128053083       128053143
chr8    128053319       128053363
chr8    128054084       128054115
chr8    128054459       128054485
chr8    128054738       128054779
chr8    128055454       128055495
chr8    128055651       128055677
chr8    128055718       128055755
chr8    128056285       128056296
chr8    128056360       128056391
chr8    128057004       128057045
chr8    128057273       128057315
chr8    128057676       128057711
chr8    128058298       128058353
chr8    128058509       128058548
chr8    128059258       128059301
chr8    128059968       128060005
chr8    128060510       128060538
chr8    128061457       128061462
chr8    128061583       128061649
chr8    128061768       128061784
chr8    128061998       128062040
chr8    128062794       128062848
chr8    128062871       128062906
chr8    128062941       128062959
chr8    128063113       128063123
chr8    128064324       128064352
chr8    128065677       128065725
chr8    128065777       128065817
chr8    128065868       128065908
chr8    128066672       128066726
chr8    128071471       128071484
chr8    128071766       128071818
chr8    128072861       128072876
chr8    128074175       128074210
chr8    128076452       128076469
chr8    128077214       128077266
chr8    128077988       128078018
chr8    128081166       128081221
chr8    128086286       128086332
chr8    128088636       128088662
chr8    128090615       128090658
chr8    128091762       128091773
chr8    128091893       128091917
chr8    128094952       128094985
chr8    128095198       128095226
chr8    128095344       128095390
chr8    128095573       128095670
chr8    128095769       128095803
chr8    128095861       128095908
chr8    128096424       128096462
chr8    128096747       128096781
chr8    128096960       128096988
chr8    128097064       128097103
chr8    128099904       128099920
chr8    128100008       128100016
chr8    128100513       128100607
chr8    128100840       128100919
chr8    128101086       128101124
chr8    128101177       128101193
chr8    131904404       131904433
chr8    131909271       131909320

下面是它应该是什么样子(请注意,第2列和第3列在参数中):

chr8    127932730       127932832 
chr8    127932932       127932959 
chr8    127996207       127996249 
chr8    127996269       127996290 
chr8    127996382       127996388 
chr8    127996563       127996584
chr8    127996730       127996750
chr8    127996777       127996855
chr8    127996868       127996875
chr8    128099904       128099920

有人能解释一下我做错了什么吗?

推荐答案

您可以通过串联构建awk脚本:

read region
awk '{if ('"${region}"') print}' file.input > file.output

EDIT这是不寻常的,请查看其他答案以获得可行的解决方案(@Ed Morton的答案)

Linux相关问答推荐

如何删除字符串中的`{{i:`and `}}`

UTF-8输入和使用XGetICValues

Linux BlueZ 5.65 hcitool 结合服务 UUID 和制造数据广告

awk 不打印所需的 df 输出

访问证书里面的图片

当接收端未从套接字读取时,通过 Unix 套接字发送的消息会发生什么情况?

使用 bash 中的数字对 RPM 内核字符串进行版本排序返回不正确的结果

PHP factor 30 从 Linux 到 Windows 的性能差异

Vagrant chicken-and-egg:与 uid = apache 用户共享文件夹

低功耗蓝牙:在 linux 中监听通知/指示

如何在 Linux 中通过控制台输出启动 Tomcat?

如何搜索文件并将它们压缩到一个 zip 文件中

在 linux 上查看文件大小

在 Python 中删除 Root 权限

在 Linux 上忽略 glob() 中的大小写

在文件夹中的 gzip 文件中查找字符串

如何在 Linux 中删除早于特定日期的文件?

在类 Unix 系统中上次运行的 cron 作业(job)的详细信息?

通过 linux x86-64 函数调用保留了哪些寄存器

linux脚本杀死java进程