我有一个2列tsv,我需要使用第2列中的部分值插入一个新的第一列。
我所拥有的:
fastq/D0110.L001_R1_001.fastq fastq/D0110.L001_R2_001.fastq
fastq/D0206.L001_R1_001.fastq fastq/D0206.L001_R2_001.fastq
fastq/D0208.L001_R1_001.fastq fastq/D0208.L001_R2_001.fastq我想要的:
D0110 fastq/D0110.L001_R1_001.fastq fastq/D0110.L001_R2_001.fastq
D0206 fastq/D0206.L001_R1_001.fastq fastq/D0206.L001_R2_001.fastq
D0208 fastq/D0208.L001_R1_001.fastq fastq/D0208.L001_R2_001.fastq我想把"fastq/“和第一个句号之间的所有东西都打印出来,作为新的第一栏。
发布于 2016-04-27 19:47:55
$ awk -F'[/.]' '{printf "%s\t%s\n",$2,$0}' file
D0110 fastq/D0110.L001_R1_001.fastq fastq/D0110.L001_R2_001.fastq
D0206 fastq/D0206.L001_R1_001.fastq fastq/D0206.L001_R2_001.fastq
D0208 fastq/D0208.L001_R1_001.fastq fastq/D0208.L001_R2_001.fastq它是如何工作的
awk在所有输入行上隐式循环。
-F'[/.]'
这告诉awk使用任何出现的/或.作为字段分隔符。这意味着,对于您的输入,您要查找的字符串将是第二个字段。printf "%s\t%s\n",$2,$0
这告诉awk打印第二个字段($2),后面是制表符(\t),后面是输入行($0),后面是换行符(\n)。https://stackoverflow.com/questions/36898717
复制相似问题