我有一个具有~15k行/记录的文件,如下所示:
$ head -50 skato.tsv
chr gene SKATO.pval SKATO.pmin rho cmaf nsnps.gene
chr1 NA NA NA NA NA NA
chr1 SAMD11 0.7068 0.5451 0 0.01214 5
chr1 NOC2L 0.09887 0.05592 0 0.1926 8
chr1 KLHL17 0.1262 0.09206 0 0.003241 3
chr1 PLEKHN1 0.01034 0.2067 0 0.5905 11
chr1 HES4 0.02433 0.02433 0 0.002427 1
chr1 ISG15 0.1942 0.1942 1 0.3803 2
chr1 AGRN 0.8922 0.7151 1 0.115 18
chr1 C1orf159 0.5763 0.361 0 0.03485 2
chr1 TTLL10 0.2172 0.1272 0 0.1869 11
chr1 TNFRSF18 0.4014 0.2909 0 0.01379 6
chr1 TNFRSF4 0.1456 0.1179 1 0.001619 2
chr1 SDF4 0.1963 0.1963 0 0.0008104 1我要做的是移除第二行的所有线条:
chrx NA NA NA NA NA NA对在座的许多人来说,这可能很容易,但我对此感到有些沮丧。有人能帮帮我吗。谢谢。
发布于 2015-03-17 15:22:51
这可能对您有用(GNU sed):
sed -r '/(\s+NA){6}/d' file删除任何包含6个或更多所需字符串的行。
sed '/\(\s\s*NA\)\{6\}/d' file也适用于大多数seds。
发布于 2015-03-17 15:20:49
您可以尝试下面的sed命令。
sed '/^chr[0-9]\+\([[:blank:]]\+NA\)\+$/d' file这将删除所有具有一个或多个NA的行。
发布于 2015-03-17 15:16:45
试一试如下:
egrep -v "chr[0-9]+\s+NA\s+NA" myfile.txt或者如果您想继续使用sed,那么
sed -r -i.bak "/chr[0-9]+\s+NA\s+NA/d" myfile.txt ##add multiple NA's that you wish to check for它将在实际删除行之前创建回文件。
https://stackoverflow.com/questions/29102783
复制相似问题