sed 操作がうまくいかないか、私が何か間違っているのでしょうか?

sed 操作がうまくいかないか、私が何か間違っているのでしょうか?

テキスト入力:

chrX_143483005-chr6_103649292,chrX_143483110-chr6_103649131 chrX_143483110-chr_6103649147   chrX_143483004-chr6_103649293,chrX_143483110-chr6_103649291,chrX_143483110-chr6_103649053
chrX_143483110-chr_6103649147   chrX_143483005-chr6_103649292,chrX_143483110-chr6_103649131 0
0   chrX_143483005-chr6_103649292,chrX_143483110-chr6_103649131 chrX_143482988-chr6_103649147,chrX_143483004-chr6_103649293,chrX_143483110-chr6_103649291,chrX_143483110-chr6_103649053
chrX_143483005-chr6_103649292,chrX_143483110-chr6_103649131 0   chrX_143483110-chr_6103649147
0   chrX_143483005-chr6_103649292,chrX_143483110-chr6_103649131 chrX_143482988-chr6_103649147,chrX_143483004-chr6_103649293,chrX_143483110-chr6_103649291,chrX_143483110-chr6_103649053

希望の出力:

chrX_143483005-chr6_103649292   chrX_143483110-chr_6103649147   chrX_143483004-chr6_103649293
chrX_143483110-chr_6103649147   chrX_143483005-chr6_103649292   0
0   chrX_143483005-chr6_103649292   chrX_143482988-chr6_103649147
chrX_143483005-chr6_103649292   0   chrX_143483110-chr_6103649147
0 chrX_143483005-chr6_103649292 chrX_143482988-chr6_103649147

試験を終えた:

## No. of Columns in each line.
awk '{print NF}' tt.txt
3
3
3
3
3
## operation to delete the co-ordinates affiliated with comma.
sed -e 's/\,chr[A-Z0-9]\_[0-9]-chr[A-Z0-9]\_[0-9]*.//g' tt.txt

デフォルトでは、「、」の後の座標を削除し、左手(最初の)座標のみを維持したいと思います。

注:1この操作では、列は入力と同じです。 2. カンマで区切られた座標は固定されず、任意の列にすることができます。 3.染色体は1〜19、X、Yのいずれでもよい。

ベストアンサー1

十分簡単です。

$ sed -E 's/,[^ ]+//g' in
chrX_143483005-chr6_103649292 chrX_143483110-chr_6103649147   chrX_143483004-chr6_103649293
chrX_143483110-chr_6103649147   chrX_143483005-chr6_103649292 0
0   chrX_143483005-chr6_103649292 chrX_143482988-chr6_103649147
chrX_143483005-chr6_103649292 0   chrX_143483110-chr_6103649147
0   chrX_143483005-chr6_103649292 chrX_143482988-chr6_103649147

(拡張)正規表現は、/,[^ ]+/空白ではなく文字系列の後にカンマが続くすべてのシーケンスと一致します。

このsedコマンドは、s最初の引数(この場合は指定された式)を2番目の引数(この場合は空)に置き換えます。gコマンドのオプションは、s最初の一致だけでなく、見つかったすべての項目を置き換えることを意味します。

おすすめ記事