我有非常大的基因型文件,基本上不能在R中打开,所以我试图使用linux命令行提取感兴趣的行和列.使用头部/尾部的行很简单,但我很难弄清楚如何处理列.
如果我尝试使用提取(例如)100-105个制表符或空格分隔列
cut -c100-105 myfile >outfile
Run Code Online (Sandbox Code Playgroud)
如果每列中有多个字符串,这显然不起作用.有没有办法用适当的参数修改cut,以便它提取列中的整个字符串,其中列被定义为空格或制表符(或任何其他字符)分隔?
hek*_*mgl 31
如果命令应该同时使用制表符和空格作为我将使用的分隔符awk:
awk '{print $100,$101,$102,$103,$104,$105}' myfile > outfile
Run Code Online (Sandbox Code Playgroud)
只要你只需要指定5个字段就可以输入它们,对于更长的范围你可以使用for循环:
awk '{for(i=100;i<=105;i++)print $i}' myfile > outfile
Run Code Online (Sandbox Code Playgroud)
你需要cut:
cut -f100-105 myfile > outfile
Run Code Online (Sandbox Code Playgroud)
如果字段分隔符不同,则-f需要使用TAB以下命令指定它:
cut -d' ' -f100-105 myfile > outfile
Run Code Online (Sandbox Code Playgroud)
有关cut命令的更多信息,请查看手册页.
asa*_*lic 11
您可以使用带有分隔符的cut,如下所示:
空间分隔:
cut -d " " -f1-100,1000-1005 infile.csv > outfile.csv
Run Code Online (Sandbox Code Playgroud)
使用制表符分隔:
cut -d$'\t' -f1-100,1000-1005 infile.csv > outfile.csv
Run Code Online (Sandbox Code Playgroud)
我给你剪切版本,你可以在其中提取间隔列表......
希望能帮助到你!