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