Awk 剪切列并附加到同一文件
我正在使用MacOS上的标签分隔文件。该文件包含15列和数千行。我想剪切第1、2和3列,然后用第11、12和13列附加它们。我希望在管道中这样做,这样就不需要创建额外的文件。我找到的唯一一个帖子使用了一个命令Awk 剪切列并附加到同一文件,awk,append,pipe,cut,perl,Awk,Append,Pipe,Cut,Perl,我正在使用MacOS上的标签分隔文件。该文件包含15列和数千行。我想剪切第1、2和3列,然后用第11、12和13列附加它们。我希望在管道中这样做,这样就不需要创建额外的文件。我找到的唯一一个帖子使用了一个命令scribe,但我显然没有在MacOS上使用它,或者它不在我的BASH中 输入tsv文件实际上是在同一行代码中生成的 生成input.tsv | cut-f1-3,11-13 | | sort>out.file的任意命令 输入tsv chr1 21018 21101 A B
scribe
,但我显然没有在MacOS上使用它,或者它不在我的BASH中
输入tsv文件实际上是在同一行代码中生成的
生成input.tsv | cut-f1-3,11-13 | | sort>out.file的任意命令
输入tsv
chr1 21018 21101 A B C D E F G chr1 20752 21209
chr10 74645 74836 A B C D E F G chr10 74638 74898
chr10 75267 75545 A B C D E F G chr10 75280 75917
chr4 212478 212556 A B C D E F G chr4 212491 213285
chr1 21018 21101
chr1 20752 21209
chr10 74638 74898
chr10 74645 74836
chr10 75280 75917
chr4 212478 212556
chr4 212491 213285
所需输出tsv
chr1 21018 21101 A B C D E F G chr1 20752 21209
chr10 74645 74836 A B C D E F G chr10 74638 74898
chr10 75267 75545 A B C D E F G chr10 75280 75917
chr4 212478 212556 A B C D E F G chr4 212491 213285
chr1 21018 21101
chr1 20752 21209
chr10 74638 74898
chr10 74645 74836
chr10 75280 75917
chr4 212478 212556
chr4 212491 213285
使用和:
代码
输出
以下是简短的
awk
解决方案:
awk '{print $1, $2, $3, "\n" $1, $12, $13;}' input.tsv
输出:
解释
嗨,吉尔。有没有办法用浆糊把它用管子塞住?这并不完全正确,但您可能会看到如何调整下面的粘贴命令
生成input.tsv | cut-f1-3,11-13 | paste的任意命令
chr1 21018 21101
chr1 20752 21209
chr10 74645 74836
chr10 74638 74898
chr10 75267 75545
chr10 75280 75917
chr4 212478 212556
chr4 212491 213285
{ # for each input line
print $1, $2, $3; # print 1st field, append 2nd and 3rd fields. Terminate with new line
print $1, $12, $13; #print 1st field, append 12th and 13th field. Terminate with new line
}