私は、その列の5番目のフィールドにコンテキスト(パイプ|)があるときに、特定の列の最初のフィールド(たとえば1と2)の値を更新するファイルを持っています。特定の条件(コンテキスト)でのみ、別のフィールドの値を持つ列のフィールドの値を更新する方法はありますか。
私はpythonを使うことができますが、行を分割して値を代入して結合することは、長いスクリプトになります。私は解決策をawk(pefereable)を使用して探しています他の人はあまりにも短いです。また、これをPythonスクリプト内に埋め込みたいと思います。
以下は(:)で区切られた列内のフィールドを持つ私のデータからの2つの列です。
0/1:42,19:61:99:0|1:5185_T_TTCTATC:560,0,1648 0/1:38,34:72:99:0|1:5185_T_TTCTATC:1145,0,1311
0/0:124,0,0:124:99:0,120,1800,120,1800,1800 0/0:165,0,0:165:99:0,120,1800,120,1800,1800
0/0:152,0:152:99:.:.:0,120,1800 0/1:145,34:179:99:0|1:5398_A_G:973,0,6088
ので、その列の5番目のフィールドがある場合 '|'最初のフィールドを5番目のフィールド値で更新します。
期待される結果:
0|1:42,19:61:99:0|1:5185_T_TTCTATC:560,0,1648 0|1:38,34:72:99:0|1:5185_T_TTCTATC:1145,0,1311
0/0:124,0,0:124:99:0,120,1800,120,1800,1800 0/0:165,0,0:165:99:0,120,1800,120,1800,1800
0/0:152,0:152:99:.:.:0,120,1800 0|1:145,34:179:99:0|1:5398_A_G:973,0,6088
-Actually、列がたくさんあります。そして、この種の列は5番目のpythonのインデックス位置の後に表示され、5番目の列の後のすべての列フィールドで置換を行いたい場合は、どのように問題に近づけることができます。
おかげで、
おかげで、
あなたはしかしawkの答えを提供していただけますか?それをPythonに組み込むことは別の問題であり、私は後でそれを扱います。ありがとう! – everestial007
@エドモートン:awkソリューションを提供してもらえますか? – everestial007
こんにちは@エドモートン:私は誰かがすぐに答えを提供することを願っています。しかし、時々私は数時間待たなければならず、明日から誰もそれをもう一度調べることはありません。 awkのソリューションを提供できるのであれば、少なくとも私のファイルで今したいことをやり遂げることができます。私はより完全な答えのために別の日を待つことができます。ありがとう! – everestial007