【问题标题】:Searching through a .txt file to get specific lines and outputting to a new file搜索 .txt 文件以获取特定行并输出到新文件
【发布时间】:2017-06-21 11:05:47
【问题描述】:

我有一个非常大的.txt 文件,分为由(我认为)一个选项卡分隔的列。

列是这样的(通过运行head NAMEOFTEXTFILE.txt获得):

CANVAS_CHROM    CANVAS_START    CANVAS_END      CANVAS_GT       CANVAS_RC       CANVAS_BC       CANVAS_CN       CANVAS_FILTER  CANVAS_QUAL      BRIDGE_ID       ILMN_ID PROJECT InferredSex     ensembl_gene_IDs        external_gene_IDs       Gene_database  Gene_biotype     overlap_ctrl    overlap_internal        overlap_PAR

我想用Bridge ID 过滤这个。每个 ID 是疾病的三个字母的首字母缩写词,例如,IDM 表示“胰岛素依赖型糖尿病”,后跟该特定患者的序列号,这样IDM131289748937 将是该患者的遗传数据。表中的每一行代表一个不同的突变。

然后我想将其输出到.txt 文件。

到目前为止(使用命令行)我已经尝试过:

grep "IDM" $(find .. -name 'NAMEOFTEXTFILE.txt') > filtereddata.txt

但这会输出一个乱码的数据列表。

我也试过了:

`awk '/IDM3/' NAMEOFTEXTFILE.txt` > filtereddata.txt 

这也不起作用。

我想知道哪种功能最适合这项任务。

我在下面附上了原始文本文件的示例:

CANVAS_CHROM CANVAS_START CANVAS_END CANVAS_GT CANVAS_RC CANVAS_BC CANVAS_CN CANVAS_FILTER CANVAS_QUAL BRIDGE_ID ILMN_ID PROJECT InferredSex ensembl_gene_IDs external_gene_IDs Gene_database Gene_biotypeoverlap_ctrloverlap_internaloverlap_PAR 1 825226 916134 0/1 145 87 3。 53 M006429 LP2000749-DNA_C03 PMG F ENSG00000272438,ENSG00000230699,ENSG00000241180,ENSG00000223764,ENSG00000187634,ENSG00000268179,ENSG00000188976,ENSG00000187961,ENSG00000187583,ENSG00000187642 RP11-54O7.16,RP11-54O7.1,RP11-54O7.2,RP11-54O7.3, SAMD11,AL645608.1,NOC2L,KLHL17,PLEKHN1,C1orf170 基于克隆(Vega),基于克隆(Vega),基于克隆(Vega),基于克隆(Vega),HGNC Symbol,基于克隆(Ensembl) ,HGNC 符号,HGNC 符号,HGNC 符号,HGNC 符号 lincRNA,lincRNA,lincRNA,lincRNA,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding 0 1 0 1 826236 3641787 0/1 126 2655 3。 61 E009248 LP2000862-DNA_G05 PAH F ENSG00000272438,ENSG00000230699,ENSG00000241180,ENSG00000223764,ENSG00000187634,ENSG00000268179,ENSG00000188976,ENSG00000187961,ENSG00000187583,ENSG00000187642,ENSG00000272512,ENSG00000188290,ENSG00000231702,ENSG00000224969,ENSG00000187608,ENSG00000188157,ENSG00000242590,ENSG00000217801,ENSG00000273443,ENSG00000237330,ENSG00000131591,ENSG00000223823 ,ENSG00000207730,ENSG00000207607,ENSG00000198976,ENSG00000272141,ENSG00000205231,ENSG00000162571,ENSG00000186891,ENSG00000186827,ENSG00000078808,ENSG00000176022,ENSG00000184163,ENSG00000260179,ENSG00000160087,ENSG00000230415,ENSG00000162572,ENSG00000131584,ENSG00000169972,ENSG00000127054,ENSG00000240731,ENSG00000224051,ENSG00000169962,ENSG00000107404,ENSG00000162576,ENSG00000175756,ENSG00000223663 ,ENSG00000221978,ENSG00000224870,ENSG00000242485,ENSG00000264293,ENSG00000272455,ENSG00000235098,ENSG000002225905,ENSG0000020205116,ENSG000002222285,ENSG00000,000179179912285,ENSG00000,000,000,000,000,000,000,000 ,, G00000197785,ENSG00000205090,ENSG00000160075,ENSG00000215791,ENSG00000215014,ENSG00000236684,ENSG00000228594,ENSG00000272106,ENSG00000197530,ENSG00000189409,ENSG00000248333,ENSG00000272004,ENSG00000189339,ENSG00000269737,ENSG00000269227,ENSG00000215914,ENSG00000008128,ENSG00000268575,ENSG00000227775,ENSG00000215790,ENSG00000008130,ENSG00000078369,ENSG00000231050,ENSG00000169885,ENSG00000178821, ENSG00000142609,ENSG00000233542,ENSG00000187730,ENSG00000226969,ENSG00000067606,ENSG00000271806,ENSG00000182873,ENSG00000162585,ENSG00000269554,ENSG00000203301,ENSG00000243558,ENSG00000234396,ENSG00000157933,ENSG00000116151,ENSG00000272161,ENSG00000269753,ENSG00000269896,ENSG00000238240,ENSG00000272420,ENSG00000271921,ENSG00000271847,ENSG00000178642,ENSG00000157916,ENSG00000157911,ENSG00000149527, ESSG00000224387,ENSG00000229393,ENSG00000157881,ENSG00000197921,ENSG00000272449,ENSG00000238164,ENSG00000157873,ENSG000002225931,ENSG00000222280222802280228022802280150002280228028028012801280128010 ,, 5912,ENSG00000233234,ENSG00000231630,ENSG00000169717,ENSG00000177133,ENSG00000256761,ENSG00000142611,ENSG00000226286,ENSG00000272235,ENSG00000130762,ENSG00000272088,ENSG00000162591,ENSG00000207776,ENSG00000238260,ENSG00000158109,ENSG00000116213,ENSG00000078900,ENSG00000227589,ENSG00000235131 RP11-54O7.16,RP11-54O7.1,RP11 -54O7.2,RP11-54O7.3,SAMD11,AL645608.1,NOC2L,KLHL17,PLEKHN1,C1orf170,RP11-54O7.17,HES4,RP11-54O7.10,RP11-54O7.11,ISG15,AGRN,RP11 -54O7.14,RP11-465B22.3,RP11-54O7.18,RNF223,C1orf159,RP11-465B22.5,MIR200B,MIR200A,MIR429,RP11-465B22.8,TTLL10-AS1,TTLL10,TNFRSF18,TNFRSF4,SDF4 ,B3GALT6,FAM132A,RP5-902P8.12,UBE2J2,RP5-902P8.10,SCNN1D,ACAP3,PUSL1,CPSF3L,RP5-890O3.9,GLTPD1,TAS1R3,DVL1,MXRA8,AURKAIP1,RP5-890O3.3,CCNL2 ,RP4-758J18.2,MRPL20,RN7SL657P,RP4-758J18.13,ANKRD65,RP4-758J18.7,TMEM88B,RP4-758J18.10,VWA1,ATAD3C,ATAD3B,ATAD3A,TMEM240,SSU72,AL645728.2,AL645728 .1,AL645728.3,C1orf233,RP11-345P4.9,MIB2,MMP23B,CDK11B,RP11-345P4.10,SLC35E2B,RP11-345P4.7,RP11-345P4.6,MMP23A,CDK11A,RP1 -283E3.8,RP1-283E3.4,SLC35E2,NADK,GNB1,RP1-140A9.1,CALML6,TMEM52,C1orf222,RP11-547D24.1,GABRD,RP11-547D24.3,PRKCZ,RP5-892K4.1 ,RP11-181G12.2,C1orf86,AL590822.2,AL590822.1,RP11-181G12.5,RP11-181G12.4,SKI,MORN1,RP4-713A8.1,AL589739.1,RP4-740C4.6,RP4 -740C4.5,RP4-740C4.7,RP4-740C4.9,RP4-740C4.8,AL513477.1,RER1,PEX10,PLCH2,RP3-395M20.2,RP3-395M20.3,PANK4,HES5,RP3 -395M20.12,RP3-395M20.8,TNFRSF14,RP3-395M20.7,RP3-395M20.9,FAM213B,MMEL1,RP13-436F16.1,TTC34,RP11-740P5.2,RP11-740P5.3,ACTRT2 ,LINC00982,AL008733.1,PRDM16,RP1-163G9.2,RP11-22L13.1,ARHGEF16,RP11-168F9.2,MEGF6,MIR551A,RP11-46F15.2,TPRG1L,WRAP73,TP73,RP5-1092A11.5 ,RP5-1092A11.2 Clone-based (Vega),Clone-based (Vega),Clone-based (Vega),Clone-based (Vega),HGNC Symbol,Clone-based (Ensembl),HGNC Symbol,HGNC Symbol, HGNC Symbol,HGNC Symbol,Clone-based (Vega),HGNC Symbol,Clone-based (Vega),Clone-based (Vega),HGNC Symbol,HGNC Symbol,Clone-based (Vega),Clone-based (Vega), Clone-based (Vega),HGNC Symbol,HGNC Symbol,Clone-based (Vega),HGNC Symbol,HGN C符号,HGNC符号,基于克隆(Vega),HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,基于克隆(Vega),HGNC符号,基于克隆(Vega) ,HGNC符号,HGNC符号,HGNC符号,HGNC符号,基于克隆的(Vega),HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,基于克隆的(Vega),HGNC符号,基于克隆的(Vega ),HGNC符号,HGNC符号,基于克隆的(Vega),HGNC符号,基于克隆的(Vega),HGNC符号,基于克隆的(Vega),HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号, HGNC Symbol,Clone-based (Ensembl),Clone-based (Ensembl),Clone-based (Ensembl),HGNC Symbol,Clone-based (Vega),HGNC Symbol,HGNC Symbol,HGNC Symbol,Clone-based (Vega), HGNC符号,基于克隆(Vega),基于克隆(Vega),HGNC符号,HGNC符号,基于克隆(Vega),基于克隆(Vega),HGNC符号,HGNC符号,HGNC符号,基于克隆( Vega),HGNC Symbol,HGNC Symbol,HGNC Symbol,Clone-based (Vega),HGNC Symbol,Clone-based (Vega),HGNC Symbol,Clone-based (Vega),Clone-based (Vega),HGNC Symbol,Clone -based (Ensembl),Clone-based (Ensembl),Clone-based (Vega),Clone-based (Vega),HGNC Symbol,HGNC Symbol,Clone-based (Vega),Clone-based (Ensembl),Clone-based (Vega),Clone-based (Vega),Clone-based (Vega),Clone-based (Vega),Clone-based (Vega),Clone-based (Ensembl),HGNC Symbol,HGNC Symbol,HGNC Symbol,Clone-基于 (Vega),基于克隆 (Vega),HGNC 符号,HGNC 符号,基于克隆 (Vega),基于克隆 (Vega),HGNC 符号,基于克隆 (Vega),基于克隆 (Vega),HGNC符号,HGNC符号,基于克隆(Vega),HGNC符号,基于克隆(Vega),基于克隆(Vega),HGNC符号,HGNC符号,基于克隆(Ensembl),HGNC符号,基于克隆(Vega) ),基于克隆 (Vega),HGNC 符号,基于克隆 (Vega),HGNC 符号,HGNC 符号,基于克隆 (Vega),HGNC 符号,HGNC 符号,HGNC 符号,基于克隆 (Vega),Clone-基于 (Vega) lincRNA,lincRNA,lincRNA,lincRNA,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,lincRNA,protein_coding,假基因,反义,protein_coding,protein_coding,sense_intronic,pseudog ene,lincRNA,protein_coding,protein_coding,lincRNA,miRNA,miRNA,miRNA,lincRNA,antisense,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,lincRNA,protein_coding,lincRNA,protein_coding,protein_coding,protein_coding,protein_coding,sense_intronic,protein_coding,蛋白质编码,蛋白质编码,蛋白质编码,蛋白质编码,假基因,蛋白质编码,蛋白质编码,蛋白质编码,misc_RNA,lincRNA,蛋白质编码,反义,蛋白质编码,lincRNA,蛋白质编码,蛋白质编码,蛋白质编码,蛋白质编码,蛋白质编码,蛋白质编码,假基因,蛋白质编码,假基因,蛋白质编码,反义, protein_coding,protein_coding,protein_coding,antisense,protein_coding,antisense,pseudogene,pseudogene,protein_coding,processed_transcript,pseudogene,protein_coding,protein_coding,protein_coding,antisense,protein_coding,protein_coding,protein_coding,antisense,protein_coding,antisense,protein_coding,antisense,antisense,protein_coding,蛋白质编码,蛋白质编码,lincRN A,lincRNA,protein_coding,protein_coding,sense_intronic,protein_coding,processed_transcript,pseudogene,sense_intronic,sense_intronic,sense_intronic,pseudogene,protein_coding,protein_coding,protein_coding,antisense,antisense,protein_coding,protein_coding,lincRNA,processed_transcript,protein_coding,antisense,antisense,protein_coding,蛋白质编码,反义,蛋白质编码,lincRNA,lincRNA,蛋白质编码,反义,假基因,蛋白质编码,反义,lincRNA,蛋白质编码,lincRNA,蛋白质编码,miRNA,反义,蛋白质编码,蛋白质编码,蛋白质编码,反义,反义 0 1 0 1 969935 1231975 0/1 145 252 3。 61 E005981 LP2000742-DNA_D01 PAH M ENSG00000188157,ENSG00000242590,ENSG00000217801,ENSG00000273443,ENSG00000237330,ENSG00000131591,ENSG00000223823,ENSG00000207730,ENSG00000207607,ENSG00000198976,ENSG00000272141,ENSG00000205231,ENSG00000162571,ENSG00000186891,ENSG00000186827,ENSG00000078808,ENSG00000176022,ENSG00000184163,ENSG00000260179,ENSG00000160087,ENSG00000230415,ENSG00000162572 ,ENSG00000131584 AGRN,RP11-54O7.14,RP11-465B22.3,RP11-54O7.18,RNF223,C1orf159,RP11-465B22.5,MIR200B,MIR200A,MIR429,RP11-465B22.8,TTLL10-AS1,TTLL1 TNFRSF18,TNFRSF4,SDF4,B3GALT6,FAM132A,RP5-902P8.12,UBE2J2,RP5-902P8.10,SCNN1D,ACAP3 HGNC Symbol,Clone-based (Vega),Clone-based (Vega),Clone-based (Vega) ,HGNC符号,HGNC符号,基于克隆的(Vega),HGNC符号,HGNC符号,HGNC符号,基于克隆的(Vega),HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,HGNC符号,Clone-based (Vega),HGNC Symbol,Clone-based (Vega),HGNC Symbol,HGNC Symbol protein_coding,sense_intronic,ps eudogene,lincRNA,protein_coding,protein_coding,lincRNA,miRNA,miRNA,miRNA,lincRNA,反义,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,protein_coding,lincRNA,protein_coding,lincRNA,protein_coding,protein_coding 0 2 0 1 1025358 1068256 0/1 141 43 3。 25 G012138 LP2000955-DNA_A12 SPEED M ENSG00000131591 C1orf159 HGNC 符号 protein_coding 0 4 0 1 1027213 1054981 0/1 122 31 3。 17 C003646 LP2000719-DNA_D01 GEL F ENSG00000131591 C1orf159 HGNC 符号 protein_coding 0 6 0 1 1027429 1054789 0/1 120 30 3。 17 C003121 LP2000712-DNA_D08 GEL F ENSG00000131591 C1orf159 HGNC 符号 protein_coding 0 6 0 1 1027747 1054977 0/1 127 27 3。 15 C001669 LP2000262-DNA_B10 GEL F ENSG00000131591 C1orf159 HGNC 符号 protein_coding 0 6 0 1 1028234 1047162 0/1 116 21 3。 11 C002886 LP2000275-DNA_C06 GEL M ENSG00000131591 C1orf159 HGNC 符号 protein_coding 0 6 0 1 1028342 1046413 0/1 122 20 3。 11 C001874 LP2000266-DNA_H03 GEL F ENSG00000131591 C1orf159 HGNC 符号 protein_coding 0 6 0

【问题讨论】:

  • 请发布一些示例数据,以便我们进行测试,以及预期的输出。
  • 忽略所有 grep 解决方案,因为它们在整行而不是特定列上运行,因此很容易出现错误匹配。正确答案将是一个 awk 脚本,我们可以按照 @JamesBrown 的要求为您提供帮助,以便我们全面了解问题。
  • 亲爱的@james Brown,非常感谢您的回复。我在原始问题下方附加了一些示例数据(使用 head 50 NAMEOFTEXTFILE.txt)
  • 您的示例文件中的“IDM”在哪里?
  • 您已经发布了一个看起来是实际数据标题的行。从您的问题中我可以看出,您对BRIDGE_ID 字段及其后的一些数字感兴趣,但您完全不清楚从那时起您需要什么。请帮助我们帮助您特别清楚地解释您需要从您发布的标题中得到什么,以及从可能也存在于同一文件中的数据中得到什么。

标签: linux shell awk grep


【解决方案1】:

当您使用简单的 grep "IDM" 时,它会在单词的任何部分(即开头、中间等)搜索字符串“IDM”。

因为我不确定文本“IDM31234234”是否存在于一行的确切位置。因此,我假设 Line 以“IDM31234234”开头。

egrep "^IDM[0-9]+ " inputfile > output file #this searches for the line which starts with IDM with one minimal integer and there is a space after that

如果你确定整数的个数,那么你可以做如下

 egrep "^IDM[0-9]{7} "  inputfile > output file # IDM with 7 integers
 egrep "^IDM[0-9]{7,} "  inputfile > output file # IDM with minimal 7 integers

简单来说,使用正则表达式更有效地缩小搜索范围。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    将文件拆分为一行,每行一个单词,grep 用于 IDM

    tr " " "\n" < NAMEOFTEXTFILE.txt | grep IDM > OUTPUTFILE.txt
    

    使用"\t" 以制表符分隔的列,如果列以空格分隔,则使用" "

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 2018-05-25
      相关资源
      最近更新 更多