我有一个看起来像这样的文件:
ID101 G T freq=.5 nonetype ANC=.1 addinfor
ID102 A T freq=.3 ANC=.01 addinfor
ID102 A T freq=.01 type=1 ALT=0.022 ANC=.02 addinfor
Run Code Online (Sandbox Code Playgroud)
如您所见,每行的列数略有不同。我特别想要第 1 列、第 2 列、第 3 列、第 4 列和以ANC=
期望的输出:
ID101 G T freq=.5 ANC=.1
ID102 A T freq=.3 ANC=.01
ID102 A T freq=.01 ANC=.02
Run Code Online (Sandbox Code Playgroud)
我一般使用 awk 命令来解析文件:
awk 'BEGIN {OFS = "\t"} {print $1, $2, $3, $4}'
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的方法可以更改此命令以适用于此类情况?
我认为这样的事情可能会奏效:
awk '{for(j=1;j<=NF;j++){if($j~/^ANC=/){print $j}}}'
Run Code Online (Sandbox Code Playgroud)
但是,如何编辑它以打印第一列?
我有一个包含以下信息的文件:
20 BaDDOg
31 baddog
42 badCAT
43 goodDoG
44 GOODcAT
Run Code Online (Sandbox Code Playgroud)
我想删除所有包含单词的行dog。这是我想要的输出:
42 badCAT
44 GOODcAT
Run Code Online (Sandbox Code Playgroud)
但是,dog大小写不敏感。
我以为我可以使用 sed command: sed -e "/dog/id" file.txt,但我似乎无法让它工作。这与我在 OSX 上工作有关吗?我可以使用其他方法吗?
我有一个看起来像这样的文件:
chr22 43089055 43089055 - NM_017436 C 300 903delC
chr22 43089715-43089717 43089715-43089717 - NM_017436 CTT 79
Run Code Online (Sandbox Code Playgroud)
我想删除第-3 列之前的所有字符,以提供如下所示的输出:
chr22 43089055 43089055 - NM_017436 C 300 903delC
chr22 43089715-43089717 43089717 - NM_017436 CTT 79
Run Code Online (Sandbox Code Playgroud)
我awk '{$2+=0}1' file过去曾使用过删除 之后的字符-,但我不相信我可以对当前的问题使用相同的技术。有什么建议?