Macos 从文本文件中删除某些列
我有一个如下所示的文本文件:Macos 从文本文件中删除某些列,macos,bash,shell,sed,awk,Macos,Bash,Shell,Sed,Awk,我有一个如下所示的文本文件: A B C A B C A B C A B G T C A G T C A G T C A B C A B C A B C A B A B C A B C A B C A B A D E A B D E A B D E A B C A B C A
A B C A B C A B C A B
G T C A G T C A G T C
A B C A B C A B C A B
A B C A B C A B C A B
A D E A B D E A B D E
A B C A B C A B C A B
C B D G C B D G C B D
有没有办法只提取某些列,而保留其他列不变
例如,仅删除第2列和第5列:
A C A C A B C A B
G C A T C A G T C
A C A C A B C A B
A C A C A B C A B
A E A D E A B D E
A C A C A B C A B
C D G B D G C B D
提前谢谢
更新:
使用awk找到了这个答案,但这提取了整个“块”列,我只想提取一些
用于提取第3列至第5列的Awk:
awk -F 'FS' 'BEGIN{FS="\t"}{for (i=1; i<=NF-1; i++) if(i<3 || i>5) {printf $i FS};{print $NF}}' input.txt
awk-F'FS''开始{FS=“\t”}{for(i=1;i在您的情况下,您可以这样做
cat your_file |cut -d ' ' --complement -s -f2,5
其中“”是分隔符(在您的例子中是空格)FAQ。存在各种awk
示例。请尝试搜索。我刚刚使用awk检查了答案,但它们仅提取“block”,我想删除不一定相邻的列。根据要打印的列数,您可以使用print$1、$2、$4、$6、
,但这可能会很繁琐,或者类似$3=“”;$5=“”;print$0;
,如果您不关心输出格式,我会收到一个非法选项错误。我正在使用OSX