2016-05-23 30 views
2

ここにはnoobの総数があります。私が思うに、それを解決するには十分な問題があります。文字列を別の文字列/列に分割してください

私は、タブ区切りのデータセットを持っている:

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"

私は、分割を試みたが、これは上記のように、すべてのタブの改行を出力し例。入力や出力が私がここで使用すべき方法であるかどうかもわかりません。

これは、一連の行についても実行する必要があります。わかりやすくするためにここでは例として1行だけを使用しました。

答えて

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

この回答で問題が解決した場合は、回答の左側にあるチェックマークを使用して回答を受け入れることを検討してください。 –

関連する問題