【问题标题】:awk to output matches to separate filesawk 将匹配项输出到单独的文件
【发布时间】:2015-10-10 20:58:36
【问题描述】:

我正在尝试将 $2 中相同的文本组合起来,并将它们输出到单独的文件中,匹配的是新文件的名称。由于实际文件很大,我打开每个文件,然后关闭以节省速度和内存,我的尝试如下。谢谢你:)。

awk '{printf "%s\n", $2==$2".txt"; close($2".txt")}' input.txt **'{ print $2 > "$2.txt" }'**

input.txt

chr19:41848059-41848167 TGFB1:exon.2;TGFB1:exon.3;TGFB1:exon.4 284.611 108 bases
chr15:89850833-89850913 FANCI:exon.20;FANCI:exon.27;FANCI:exon.32;FANCI:exon.33;FANCI:exon.34 402.012 80 bases
chr15:31210356-31210508 FANC1:exon.6;FANC1:exon.7 340.914 152 bases
chr19:41850636-41850784 TGFB1:exon.1;TGFB1:exon.2;TGFB1:exon.3 621.527 148 bases

TGFB1.txt 的所需输出

chr19:41848059-41848167 TGFB1:exon.2;TGFB1:exon.3;TGFB1:exon.4 284.611 108 bases
chr19:41850636-41850784 TGFB1:exon.1;TGFB1:exon.2;TGFB1:exon.3 621.527 148 bases

FANC1.txt 的所需输出

chr15:89850833-89850913 FANCI:exon.20;FANCI:exon.27;FANCI:exon.32;FANCI:exon.33;FANCI:exon.34 402.012 80 bases
chr15:31210356-31210508 FANC1:exon.6;FANC1:exon.7 340.914 152 bases

编辑:

awk -F '[ :]' '{f = $3 ".txt";  close($3 ".txt")} print > f}' BMF_unix_loop_genes_IonXpress_008_150902_loop_genes_average_IonXpress_008_150902.bed > /home/cmccabe/Desktop/panels/BMF **/"$f".txt;**
bash: /home/cmccabe/Desktop/panels/BMF: Is a directory

【问题讨论】:

  • awk 中我添加了一个编辑来重定向输出。那是对的吗?谢谢你:)。
  • 不要用答案编辑您的帖子。如果您认为它有用并接受它,请发布答案。至于这是否正确。试试看。

标签: awk


【解决方案1】:

您可以重新定义字段分隔符以包含冒号,然后文件名将在 $3 中

awk -F '[ :]' '{f = $3 ".txt"; print > f}' input.txt

我遇到了一些 awk 的问题,在重定向右侧构造文件名是有问题的,这就是我使用变量的原因。但是周五下午的啤酒车已经出现了,我不记得具体细节了:/

除非您期望生成数百或数千个新文件,否则我不会费心关闭文件。

【讨论】:

  • 非常感谢大家,我明天试一试,告诉大家:)。
  • 在编辑中我添加了一个awk,但在尝试将新文件重定向到目录时遇到错误。谢谢 :)。我也期待数百个文件,所以添加了一个关闭:)。
【解决方案2】:

您需要将第二个字段拆分为所需的字段名称。应该这样做

$ awk 'BEGIN{close(p)} {split($2,f,":"); p=f[1]".txt"; print $0 > p }' file

请注意,由于您在其中一个字段中有错字,因此它不会准确地产生您的输出

$ ls *.txt
FANC1.txt  FANCI.txt  TGFB1.txt

【讨论】:

  • BEGIN 块的目的是什么?
  • 糟糕,一定是周五下午的啤酒车 :)。应该在主体中。
猜你喜欢
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2021-12-08
  • 1970-01-01
  • 2011-01-28
  • 1970-01-01
  • 2018-08-08
相关资源
最近更新 更多