【发布时间】:2021-02-23 09:06:42
【问题描述】:
我有两个文件 - 第一个文件在第 1 列中包含一个数字 (1-22) 以及一个从较低数字(第 2 列)到较高数字(第 3 列)的范围。这是前几行:
| 1 | 11362778 | 12362778 |
|---|---|---|
| 1 | 22054176 | 23054176 |
| 1 | 28191734 | 29191734 |
| 1 | 42956767 | 43956767 |
| 1 | 65941329 | 66941329 |
第一个文件没有任何标题。
在第二个文件中,我有很多列,第一个显示在这里:
| SNP | CHR | BP |
|---|---|---|
| rs115828134 | 1 | 11363041 |
| rs2788537 | 1 | 11363231 |
| rs12141932 | 1 | 11363301 |
如果文件 2 中的第 2 列等于文件 1 中的第 1 列并且如果文件 2 中的第 3 列在文件 2 中的第 2 列和第 3 列的范围内,我想要做的是删除文件 2 中的所有行。
基本上是这样的:,但循环遍历文件 1 的所有行。
awk '{if($2==1 && $3 < 11362778 || $3 > 12362778) print $0}' file 2 > results.txt
【问题讨论】:
标签: awk