1つの列に異なる文字列が含まれている複数の列と行のデータフレームがあります。下線。したがって、出現回数に応じて、各文字列を半分に分割したいと思います。BASH - 文字列のアンダースコアの合計数に応じて、特殊文字(アンダースコア)での文字列の分割
例:
ID_1 ID_2 haplotypeID ...
A_B_A_B A_B_A_B hap.1.1 ...
A_B_C_A_B_C A_B_C_A_B_C hap.1.2 ...
A_B_C_D_A_B_C_D A_B_C_D_A_B_C_D hap.2.1 ...
A_B_C_D_E_A_B_C_D_E A_B_C_D_E_A_B_C_D_E hap.2.1 ...
... ... ... ...
出力は次のようになります。
ID_1 ID_2 haplotypeID ...
A_B A_B hap.1.1 ...
A_B_C A_B_C hap.1.2 ...
A_B_C_D A_B_C_D hap.2.1 ...
A_B_C_D_E A_B_C_D_E hap.2.1 ...
... ... ... ...
私は、誰かが私を助けることができると思います。前もって感謝します!
だから、いつも 'somestring_thatsamestring'という形式になっていますか?入力に 'A_B_C_D'または' A_B_A_B'だけのインスタンスがありますか? – anishsane
入力は常に対称的です。つまり、1つの文字列では、インスタンスが2回、アンダースコアで区切られ、something_thatsamestringの形式で表示されます。 A_B_A_Bは表示されますが、A_B_C_Dは表示されません。 – Svalf
'sed -r 's /(^ |)([^] *)_ \ 2/\ 1 \ 2/g'を試してくださいinput.txt |列-t' – anishsane