2016-05-23 2 views
2

Всего нуб здесь и у меня есть, что я думаю, достаточно простая проблема для решения, которая полностью вывела меня.Разбить строку на отдельные строки/столбцы

У меня есть табуляцией набор данных:

NS500418:110:H2VY7BGXX:4:21601:20699:7042 chrV 8256382 True CATCTAAATTTTGTTAGGATG chrV 8256540 True GAATAATAGAAGAGGTACAGA CATCTAAATTTTGTTAGGATGTTCTTCCTCGCCTTTTCTTTCTTAATTTAAGACGTCAAAAAGCAGCATATGACAGGGATTCTGGTATTCCAATGAGATCATTTTACCAATGACGAAAAAATACGTGAGGTGTTGCAAAATGACACAAAA GAATAATAGAAGAGGTACAGAAAACGTTTGTGACGTGAAAAATGCTAAAAGCTCAAGCAATGGGTGGTCTTCTAGAACTCTGAAGAAACTGTGTTTTGTTTTCATGATCTCGGGATGCTTCAAAAACTGAAATGGGTGTCAAAGCAGGCC CATCTAAATTTTGTTAGGATGTTCTTCCTCGCCTTTT GAATAATAGAAGAGGTACAGAAAACGTTTGTGACGTGA chrV 8256416 chrV 8256566 
M03109:43:000000000-ACGWU:1:1102:11826:4015 chrIII 7513608 False TCGTTTTTTGTTCTCTAACAC chrX 15229802 False TTTTAAGTACTACCTAAGAACC TTCGCATGGATGTTTGATCCGAGAATTGGAGCTATTCTTATGCCAGTTAGTTTTTTTTCGTTTTTTGTTCTCTAACAC ATTTTGTGAAGCAATTTGGCCTTTTTTTAGTTGATCTAATTATGCGTAAACACAATTTTTAAGTACTACCTAAGAACC GTGTTAGAGAACAAAAAACGAAAAAAAACTAACTGGCATAAGAATAGCTCCAATTCTCGGATCGATCTAATTATGCGT GGTTCTTAGGTAGTACTTAAAAATTGTGTTTACGCATAATTAGATCGATCCGAGAATTGGAGCTATTCTTATGCCAGT chrIII 7513540 chrX 15229776 
NS500418:110:H2VY7BGXX:4:11407:17860:12911 chrX 4775576 True GGATAGTTTTAATTTTCTTGG chrX 16142498 True GAGTACTGCCGCGCGATCGAT GGATAGTTTTAATTTTCTTGGATATTTTTAAATTCCGCTTAAAAACAACATTGTTAAGTCCGTTTTCACAGTTTGGAACTTTCTGTAAAATTGAGACTGGGAAAACTTAATGAAATAAAAGAATAGGTGCTCTTTACAAATTAAAAACAA GAGTACTGCCGCGCGATCAATGATCTCCTTTTTGTTGGAGAAAAGATTGGAGATGACGTCTAGCGCAAGCTTTTGGCTTTCCGATTCAAGTTCTTGATCTGATAGTCTGGGAGCCTTGATTGGAGCAGCTGGGACTTTTGCAGGTTGGGA GGATAGTTTTAATTTTCTTGGATATTTTTAAATTCCG GAGTACTGCCGCGCGATCGATCTTAGAAATTAGTTAAA chrX 4775610 chrX 16142526 
NS500418:110:H2VY7BGXX:4:13612:12507:3869 chrX 11052325 False GGTCCAGCAAAACGCAGTAAAC chrI 14497739 True GTGGTGGAGGAGGAACGAATG TACTTAACCTTTGCTCCGCGGCAAAACATGATCATTTGTTCAAATAGACAATTTCGTTTTTTCTTTGACGATCAGAGTCAATGAAGTTATCTAAGGCAATCACAAAACATTTTTGAAAAGCAGCAACAGGTCCAGCAAAACGCAGTAAAC GTGGTGGAGGAGGAACGAATGGTTGTGGTCCGGCGAGTGGGGCCACTTGTGGCACAAAAGCTTGATGTCGGAGCAGATTTGGGGCGATCCCGTCTCGATGCTCGCCCACTCGGCAAAGGCGTTGATTCGGCTGGAACAACAAGCGTCTTC GTTTACTGCGTTTTGCTGGACCTGTTGCAGCTTTTCAA GTGGTGGAGGAGGAACGAATGGTTGTGGTCCGGCGAGT chrX 11052290 chrI 14497765 
NS500418:110:H2VY7BGXX:3:11604:7974:16095 chrX 7483102 False CTAGTTCAATGAGGTATGTCAT chrX 5875247 False AAAAAACTGATGGTCTTATAT CTTGGCTCAAATAAAACTGAAATCGAAAATAAAGTTTTGCATGTAAATACATTTTCAGAGTGCCTACGACTATTACCATCGAGATCGACGCGAATATAGTGTACCCTGCTTTCCTCGTTCTCGCCAACCTAGTTCAATGAGGTATGTCAT TCACAGCCACCGGATATTCTGAGATGCTTCTTTTTTTGTTGTTGTCGTTAGATGTACAGTGCCATTCCGCATATCATTGATGTTAGGATCATCTAGCATCTACCAGAATTTTTCCTTTCTCTGAATTCTAAAAAACTGATGGTCTTATAT ATGACATACCTCATTGAACTAGGTTGGCGAGAACGAGG ATATAAGACCATCAGTTTTTTAGAATTCAGAGAAAGGA chrX 7483067 chrX 5875222 
NS500418:110:H2VY7BGXX:1:12207:12144:18475 chrI 11267978 True TTTTTAGGCAGTATTCTGTGAA chrI 7633132 True GTTTTTAAGGTTTTCATCGAT TTTTTAGGCAGTATTCTGTGAACTTTCCTGCATAGTTTCCACTATGATCACCATTTTTCTAGCTCTCCTGGTTCTCACTACAAGTCCTGGACAAGTCGAGGTAAGGCTGTTTAGCCTAACCGGCCCAATGGGCCCTGCTAGGCCTCACAG GTTTTTAAGGTTTTCATCGATTTTAATTAAATTTTTATTCCAGGATGCACCAGGAAGTGAATTCAATATGCAACAGATGACATCAATGCACGACGATTCGACAACATTCACGAATCCAGTGTATGAATTAGAAGATGTTGATATGTCATC TTTTTAGGCAGTATTCTGTGAACTTTCCTGCATAGTTT GTTTTTAAGGTTTTCATCGATTTTAATTAAATTTTTAT chrI 11268013 chrI 7633159 
NS500418:152:H25C7AFXX:3:11408:4830:8603 chrIV 2481023 False TGAATCATATCAGGGCAGCTG chrIV 2542156 False CGTTGCTTGCAGTGTTCCCTT GAATTTAAATTTCCTAGTGAAAAATGACAAAAAATTATGTTTTTGTAAAAAATATCTCGAAAAAATGTTTTTTTTTTCTTTTTTTCACCTAAAATTTTTTTGTTTCAGAATTTTGTGGGTGTTGATCTATGAATCATATCAGGTCAGCTG TGAAAAAAAAAATTTGCCAAAAAAGATCAAAGAGGCGCCGCCGACAGAGAAGTGCACATGAATTATATTCAGCTGGAAATTGGAAACTGAGAGAAATCTGAATAAAACATAATTTTTTTCTCTTATTTCCGTTGCTTGCAGTGTTCCCTT CAGCTGCCCTGATATGATTCATAGAGATCAAAGAGGCGCCGCCGACAGAGAAGTGCACATGAATTATATTCAGCTGGAAATTGGAAACTGAGAGAAATCTGAATACAACATAATTTTTTTCTCTTATTTCCGTTGCTTGCAGTGTTCCCTT chrIV 2480995 chrIV 2542026

, который я прохожу через:

gc GSM2041038_n2_adults_dpn.TSV | 
    sls -Pattern '(chrIV.*chrIV.*chrIV.*chrIV)' | 
    Export-Csv OnlyChrIV.tsv -Delimiter "`t" 

И получить (что я предполагаю, что есть) с разделителями табуляции файл с заголовками, и эти результаты:

#TYPE Selected.System.Management.Automation.PSCustomObject 
"IgnoreCase" "LineNumber" "Line" "Filename" "Path" "Pattern" "Context" "Matches" 
"True" "32" "NS500418:152:H25C7AFXX:3:11408:4830:8603 chrIV 2481023 False TGAATCATATCAGGGCAGCTG chrIV 2542156 False CGTTGCTTGCAGTGTTCCCTT GAATTTAAATTTCCTAGTGAAAAATGACAAAAAATTATGTTTTTGTAAAAAATATCTCGAAAAAATGTTTTTTTTTTCTTTTTTTCACCTAAAATTTTTTTGTTTCAGAATTTTGTGGGTGTTGATCTATGAATCATATCAGGTCAGCTG TGAAAAAAAAAATTTGCCAAAAAAGATCAAAGAGGCGCCGCCGACAGAGAAGTGCACATGAATTATATTCAGCTGGAAATTGGAAACTGAGAGAAATCTGAATAAAACATAATTTTTTTCTCTTATTTCCGTTGCTTGCAGTGTTCCCTT CAGCTGCCCTGATATGATTCATAGAGATCAAAGAGGCGCCGCCGACAGAGAAGTGCACATGAATTATATTCAGCTGGAAATTGGAAACTGAGAGAAATCTGAATACAACATAATTTTTTTCTCTTATTTCCGTTGCTTGCAGTGTTCCCTT chrIV 2480995 chrIV 2542026" "InputStream" "InputStream" "(chrIV.*chrIV.*chrIV.*chrIV)" "" "System.Text.RegularExpressions.Match[]"

Данные, которые я хочу, находятся в колонке «Линия». Так что я затем передать этот файл через это:

Import-Csv OnlyChrIV.tsv -Delimiter "`t" | 
    select "line" | 
    Export-Csv OnlyChrIV_OnlyLine.tsv -Delimiter "`t" 

И я получаю это:

#TYPE Selected.System.Management.Automation.PSCustomObject 
"Line" 
"NS500418:152:H25C7AFXX:3:11408:4830:8603 chrIV 2481023 False TGAATCATATCAGGGCAGCTG chrIV 2542156 False CGTTGCTTGCAGTGTTCCCTT GAATTTAAATTTCCTAGTGAAAAATGACAAAAAATTATGTTTTTGTAAAAAATATCTCGAAAAAATGTTTTTTTTTTCTTTTTTTCACCTAAAATTTTTTTGTTTCAGAATTTTGTGGGTGTTGATCTATGAATCATATCAGGTCAGCTG TGAAAAAAAAAATTTGCCAAAAAAGATCAAAGAGGCGCCGCCGACAGAGAAGTGCACATGAATTATATTCAGCTGGAAATTGGAAACTGAGAGAAATCTGAATAAAACATAATTTTTTTCTCTTATTTCCGTTGCTTGCAGTGTTCCCTT CAGCTGCCCTGATATGATTCATAGAGATCAAAGAGGCGCCGCCGACAGAGAAGTGCACATGAATTATATTCAGCTGGAAATTGGAAACTGAGAGAAATCTGAATACAACATAATTTTTTTCTCTTATTTCCGTTGCTTGCAGTGTTCCCTT chrIV 2480995 chrIV 2542026"

Моя проблема заключается в том, что я сейчас не могу разбить строку на исходные колоннах, потому что мне нужно добавлять заголовки и обрабатывать данные дальше оттуда.

Я хочу (который, как данные были изначально отформатирован):

"NS500418:152:H25C7AFXX:3:11408:4830:8603" "chrIV" "2481023" "False" "TGAATCATATCAGGGCAGCTG" "chrIV" "2542156"

Не:

"NS500418:152:H25C7AFXX:3:11408:4830:8603" 
"chrIV" 
"2481023" 
"False" 
"TGAATCATATCAGGGCAGCTG" 
"chrIV" 
"2542156"

Я попытался раскол, но это выводит новую строку для каждой вкладки, как выше пример. Я также не знаю, являются ли входные и/или выходные данные методами, которые я должен использовать здесь.

Это также необходимо сделать для ряда линий. В качестве примера здесь я использовал только одну строку для ясности.

ответ

3

Не используйте Select-String для фильтрации данных. Используйте Import-Csv, чтобы импортировать файл. Если файл не имеет строку заголовка вы можете указать свои собственные заголовки с помощью параметра -Header:

$inFile = 'GSM2041038_n2_adults_dpn.TSV' 
$outFile = 'OnlyChrIV.tsv' 

$headers = 'H1', 'H2', ... 

Import-Csv $inFile -Delimiter "`t" -Header $headers | Where-Object { 
    $_.H2 -eq 'chrIV' -and 
    $_.H6 -eq 'chrIV' -and 
    $_.H14 -eq 'chrIV' -and 
    $_.H16 -eq 'chrIV' 
} | Export-Csv $outFile -Delimiter "`t" -NoType 
+0

Ах да, я знал, что лучший способ сделать это. Это отлично работает. Спасибо! – Steve

+0

Если этот ответ решил вашу проблему, пожалуйста, подумайте о принятии ответа, используя галочку слева от ответа. –

Смежные вопросы