列が文字で始まる場合、行末の削除

列が文字で始まる場合、行末の削除

2番目の列には、切り捨てる必要のある行を含む大容量ファイルがあります。現在:

10 10:135524264:C:G 0 135524264 C G
10 rs55726203:135524334:A:G 0 135524334 A G

もし第二列は ' で始まります。RS'、その列のコロンの後のすべてのエントリを削除する必要があります。したがって、必要な出力は次のようになります。

10 10:135524264:C:G 0 135524264 C G
10 rs55726203 0 135524334 A G

私はUnixに初めてアクセスし、必要な部分についてのフォーラムの質問だけを見つけることができました。コロンの後ろを削除する必要がありますsed 's/:.*//'が、「rs」で始まる2番目の列行を具体的にターゲットにする方法はわかりません。

ベストアンサー1

以下を使用する方が簡単ですawk

awk '$2 ~ /^rs/ {sub(/:.*/,"",$2)} 1' file
10 10:135524264:C:G 0 135524264 C G
10 rs55726203 0 135524334 A G

おすすめ記事