sed または awk を使用して、文字列の先頭と末尾が既知の特定の列から文字列を削除します。

sed または awk を使用して、文字列の先頭と末尾が既知の特定の列から文字列を削除します。

私のファイルには次の行が含まれています。

1 10241 rs960927773 POS=10241;VP=0x05;GINFO=DDX11L1:100287102;R5;ASP

POSで始まり、; GINFO =で終わる4列のすべての項目を削除したいと思います。

私の考えでは、これがうまくいくようです:sed -e 's/POS=.*;GINFO=//‘ file > new_file

可能であれば、4列を具体的に指す方法は何ですか?

ベストアンサー1

4 番目の列を直接指定するには、次のコマンドを使用します。awk方法:

awk '{ sub(/^POS.*GINFO=/, "", $4) }1' file > new_file
  • $4- 4番目のフィールドを指します。
  • sub(/^POS.*GINFO=/, "", $4)/^POS.*GINFO=- 4番目のフィールドのパターンで指定された部分文字列を置き換えます。

おすすめ記事