我有非常大的基因型文件,这些文件基本上不可能在R中打开,因此我试图使用linux命令行提取感兴趣的行和列。使用头/尾行足够简单,但是我很难弄清楚如何处理列。
如果我尝试使用以下方法提取(例如)第100-105个制表符或空格分隔列
cut -c100-105 myfile >outfile
如果每列中包含多个字符的字符串,则这显然不起作用。有什么方法可以使用适当的参数修改cut,以便提取列内的整个字符串,其中列定义为空格或制表符(或任何其他字符)分隔吗?
如果命令应同时使用制表符和空格作为分隔符,则应使用awk:
awk
awk '{print $100,$101,$102,$103,$104,$105}' myfile > outfile
只要您只需要指定5个字段,就可以直接键入它们,对于更长的范围,您可以使用for循环:
for
awk '{for(i=100;i<=105;i++)print $i}' myfile > outfile
如果要使用cut,则需要使用以下-f选项:
cut
-f
cut -f100-105 myfile > outfile
如果字段分隔符与TAB您不同,则需要使用来指定-d:
TAB
-d
cut -d' ' -f100-105 myfile > outfile
检查手册页以获取关于cut命令的更多信息。