Linuxの列に基づいて単一のファイルを複数のファイルに分割するにはどうすればよいですか?

stack_learner

次の情報を含むテキストファイルがあります。

Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
MTHFR   TCGA-BD-A2L6-01A-11D-A20W-10    4524    BCM GRCh38
SLC30A1 TCGA-BD-A2L6-01A-11D-A20W-10    7779    BCM GRCh38
USH2A   TCGA-BD-A2L6-01A-11D-A20W-10    7399    BCM GRCh38
SOS1    TCGA-BD-A2L6-01A-11D-A20W-10    6654    BCM GRCh38
TMEM51  TCGA-O8-A75V-01A-11D-A32G-10    55092   BCM GRCh38
FLG TCGA-O8-A75V-01A-11D-A32G-10    2312    BCM GRCh38
FLG TCGA-O8-A75V-01A-11D-A32G-10    2312    BCM GRCh38
PRDM16  TCGA-G3-A7M5-01A-11D-A33Q-10    63976   BCM GRCh38
DNAJC11 TCGA-G3-A7M5-01A-11D-A33Q-10    55735   BCM GRCh38
HNRNPCL2    TCGA-G3-A7M5-01A-11D-A33Q-10    440563  BCM GRCh38
C1orf94 TCGA-G3-A7M5-01A-11D-A33Q-10    84970   BCM GRCh38
NFYC    TCGA-G3-A7M5-01A-11D-A33Q-10    4802    BCM GRCh38
IPP TCGA-G3-A7M5-01A-11D-A33Q-10    3652    BCM GRCh38

ご覧のとおり、複数のサンプルがあり、「Tumor_Sample_Barcode」列に基づいてファイルを複数のファイルに分割したいと思います。出力ファイルには、samplename.txtという名前を付ける必要があります。

最初の出力-TCGA-BD-A2L6-01A-11D-A20W-10.txt

Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
MTHFR   TCGA-BD-A2L6-01A-11D-A20W-10    4524    BCM GRCh38
SLC30A1 TCGA-BD-A2L6-01A-11D-A20W-10    7779    BCM GRCh38
USH2A   TCGA-BD-A2L6-01A-11D-A20W-10    7399    BCM GRCh38
SOS1    TCGA-BD-A2L6-01A-11D-A20W-10    6654    BCM GRCh38

2番目の出力-TCGA-O8-A75V-01A-11D-A32G-10.txt

Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
TMEM51  TCGA-O8-A75V-01A-11D-A32G-10    55092   BCM GRCh38
FLG TCGA-O8-A75V-01A-11D-A32G-10    2312    BCM GRCh38
FLG TCGA-O8-A75V-01A-11D-A32G-10    2312    BCM GRCh38

3番目の出力-TCGA-G3-A7M5-01A-11D-A33Q-10.txt

Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
PRDM16  TCGA-G3-A7M5-01A-11D-A33Q-10    63976   BCM GRCh38
DNAJC11 TCGA-G3-A7M5-01A-11D-A33Q-10    55735   BCM GRCh38
HNRNPCL2    TCGA-G3-A7M5-01A-11D-A33Q-10    440563  BCM GRCh38
C1orf94 TCGA-G3-A7M5-01A-11D-A33Q-10    84970   BCM GRCh38
NFYC    TCGA-G3-A7M5-01A-11D-A33Q-10    4802    BCM GRCh38
IPP TCGA-G3-A7M5-01A-11D-A33Q-10    3652    BCM GRCh38

このLinuxを実行するにはどうすればよいですか?

RomanPerekhrest

Awk 解決:

awk 'NR==1{ h=$0 }NR>1{ print (!a[$2]++? h ORS $0 : $0) > $2".txt" }' file
  • NR==1{ h=$0 }-1番目の行/レコードをヘッダーとしてキャプチャします(NRレコード番号を指し$0ます。-現在の行を含みます)
  • NR > 1 -最初のレコードを除くすべてのレコードの場合:
    • <cond>? <operand_1> : <operand_2> -古典的な三項演算子
    • !a[$2]++?-連想配列のキーとして使用されるバーコード値の最初の出現を確認し$2ますa
    • h ORS $0- ORS(出力レコード区切り文字、デフォルトは\n)および現在のレコードと連結された共通ヘッダー行$0
    • print ... > $2".txt" -カスタムコンテンツまたは現在の行(何も指定されていない場合)をファイルに出力します <barcode_value>.txt

または、よりわかりやすいバージョン:

awk 'NR==1 {header = $0; next}
     !header_printed[$2]++ {print header > $2".txt"}
     {print > $2".txt"}' < file

結果の表示:

$ head TCGA*.txt
==> TCGA-BD-A2L6-01A-11D-A20W-10.txt <==
Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
MTHFR   TCGA-BD-A2L6-01A-11D-A20W-10    4524    BCM GRCh38
SLC30A1 TCGA-BD-A2L6-01A-11D-A20W-10    7779    BCM GRCh38
USH2A   TCGA-BD-A2L6-01A-11D-A20W-10    7399    BCM GRCh38
SOS1    TCGA-BD-A2L6-01A-11D-A20W-10    6654    BCM GRCh38

==> TCGA-G3-A7M5-01A-11D-A33Q-10.txt <==
Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
PRDM16  TCGA-G3-A7M5-01A-11D-A33Q-10    63976   BCM GRCh38
DNAJC11 TCGA-G3-A7M5-01A-11D-A33Q-10    55735   BCM GRCh38
HNRNPCL2    TCGA-G3-A7M5-01A-11D-A33Q-10    440563  BCM GRCh38
C1orf94 TCGA-G3-A7M5-01A-11D-A33Q-10    84970   BCM GRCh38
NFYC    TCGA-G3-A7M5-01A-11D-A33Q-10    4802    BCM GRCh38
IPP TCGA-G3-A7M5-01A-11D-A33Q-10    3652    BCM GRCh38

==> TCGA-O8-A75V-01A-11D-A32G-10.txt <==
Hugo_Symbol Tumor_Sample_Barcode    Entrez_Gene_Id  Center  NCBI_Build
TMEM51  TCGA-O8-A75V-01A-11D-A32G-10    55092   BCM GRCh38
FLG TCGA-O8-A75V-01A-11D-A32G-10    2312    BCM GRCh38
FLG TCGA-O8-A75V-01A-11D-A32G-10    2312    BCM GRCh38

バーコード値の15文字のシーケンスに基づいてファイル名を調整するには

awk 'NR==1{ h=$0 }NR>1{ print (!a[$2]++? h ORS $0 : $0) > substr($2, 1, 15)".txt" }' file 

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

CSVファイルをテキスト文字列に基づいて複数のファイルに分割するにはどうすればよいですか?

分類Dev

Linuxで列の数に基づいて巨大なデータファイルの行を分割するにはどうすればよいですか?

分類Dev

複数の列の値に基づいてファイルを分割するにはどうすればよいですか

分類Dev

特定の基準に基づいてcsvファイルを複数のcsvに分割するにはどうすればよいですか?

分類Dev

Pythonの列の値に基づいてcsvファイルを2つのファイルに分割するにはどうすればよいですか?

分類Dev

列数に基づいてファイルを分割するにはどうすればよいですか?

分類Dev

別のファイルの複数の条件に基づいてファイルの行を選択するにはどうすればよいですか?

分類Dev

複数の列のデータに基づいて2つのファイルをマージするにはどうすればよいですか?

分類Dev

列の値に従ってログファイルを複数のログファイルに分割するにはどうすればよいですか?

分類Dev

WindowsでColum値に基づいてcsvファイルを2つのファイルに分割するにはどうすればよいですか?

分類Dev

ファイル名の最初の単語に基づいてファイルを移動するにはどうすればよいですか?

分類Dev

複数のファイルの結果に基づいて新しいファイルを作成し、ファイル名を最初の列として保持するにはどうすればよいですか?

分類Dev

Rの条件に基づいてテキストファイルを複数の.txtファイルまたはデータフレームに分割するにはどうすればよいですか?

分類Dev

複数の条件に基づいてcsvファイルの行を削除するにはどうすればよいですか?

分類Dev

TypeScriptクラスを複数のファイルに分割するにはどうすればよいですか?

分類Dev

QMLコードを複数のファイルに分割するにはどうすればよいですか?

分類Dev

PythonTkinterコードを複数のファイルに分割するにはどうすればよいですか

分類Dev

perlを使用して1つのファイルを複数のファイルに分割するにはどうすればよいですか?

分類Dev

django3の複数のcssファイルを単一のhtmlファイルに追加するにはどうすればよいですか?

分類Dev

2つの列の一致に基づいて2つのファイルをマージするにはどうすればよいですか?

分類Dev

単一のMySQLテーブルに複数のCSVファイルの特定の列を入力するにはどうすればよいですか?

分類Dev

Linuxファイルを複数のファイルに分割するにはどうすればよいですか?

分類Dev

Linuxで列に基づいてテキストファイルを結合し、最初の行を削除するにはどうすればよいですか?

分類Dev

複数のtopojsonファイルを単一のtopojsonファイルにマージするにはどうすればよいですか?

分類Dev

apache poiを使用して行数に基づいてExcelファイルを複数のファイルに分割するにはどうすればよいですか?

分類Dev

C#を使用して、テキストファイルを複数のファイルに分割するにはどうすればよいですか

分類Dev

Pythonで複数の配列を持つリスト変数を単一の* .datファイルに保存するにはどうすればよいですか?

分類Dev

複数文字の区切り文字でファイルを複数のファイルに分割するにはどうすればよいですか?

分類Dev

ファイルを複数のスレッドで複数のファイルに分割するにはどうすればよいですか?

Related 関連記事

  1. 1

    CSVファイルをテキスト文字列に基づいて複数のファイルに分割するにはどうすればよいですか?

  2. 2

    Linuxで列の数に基づいて巨大なデータファイルの行を分割するにはどうすればよいですか?

  3. 3

    複数の列の値に基づいてファイルを分割するにはどうすればよいですか

  4. 4

    特定の基準に基づいてcsvファイルを複数のcsvに分割するにはどうすればよいですか?

  5. 5

    Pythonの列の値に基づいてcsvファイルを2つのファイルに分割するにはどうすればよいですか?

  6. 6

    列数に基づいてファイルを分割するにはどうすればよいですか?

  7. 7

    別のファイルの複数の条件に基づいてファイルの行を選択するにはどうすればよいですか?

  8. 8

    複数の列のデータに基づいて2つのファイルをマージするにはどうすればよいですか?

  9. 9

    列の値に従ってログファイルを複数のログファイルに分割するにはどうすればよいですか?

  10. 10

    WindowsでColum値に基づいてcsvファイルを2つのファイルに分割するにはどうすればよいですか?

  11. 11

    ファイル名の最初の単語に基づいてファイルを移動するにはどうすればよいですか?

  12. 12

    複数のファイルの結果に基づいて新しいファイルを作成し、ファイル名を最初の列として保持するにはどうすればよいですか?

  13. 13

    Rの条件に基づいてテキストファイルを複数の.txtファイルまたはデータフレームに分割するにはどうすればよいですか?

  14. 14

    複数の条件に基づいてcsvファイルの行を削除するにはどうすればよいですか?

  15. 15

    TypeScriptクラスを複数のファイルに分割するにはどうすればよいですか?

  16. 16

    QMLコードを複数のファイルに分割するにはどうすればよいですか?

  17. 17

    PythonTkinterコードを複数のファイルに分割するにはどうすればよいですか

  18. 18

    perlを使用して1つのファイルを複数のファイルに分割するにはどうすればよいですか?

  19. 19

    django3の複数のcssファイルを単一のhtmlファイルに追加するにはどうすればよいですか?

  20. 20

    2つの列の一致に基づいて2つのファイルをマージするにはどうすればよいですか?

  21. 21

    単一のMySQLテーブルに複数のCSVファイルの特定の列を入力するにはどうすればよいですか?

  22. 22

    Linuxファイルを複数のファイルに分割するにはどうすればよいですか?

  23. 23

    Linuxで列に基づいてテキストファイルを結合し、最初の行を削除するにはどうすればよいですか?

  24. 24

    複数のtopojsonファイルを単一のtopojsonファイルにマージするにはどうすればよいですか?

  25. 25

    apache poiを使用して行数に基づいてExcelファイルを複数のファイルに分割するにはどうすればよいですか?

  26. 26

    C#を使用して、テキストファイルを複数のファイルに分割するにはどうすればよいですか

  27. 27

    Pythonで複数の配列を持つリスト変数を単一の* .datファイルに保存するにはどうすればよいですか?

  28. 28

    複数文字の区切り文字でファイルを複数のファイルに分割するにはどうすればよいですか?

  29. 29

    ファイルを複数のスレッドで複数のファイルに分割するにはどうすればよいですか?

ホットタグ

アーカイブ