そのため、ファイルの2番目と3番目の列に次のようにテキストを設定しました。
GO:0005634^cellular_component^nucleus`GO:0003677^molecular_function^DNA binding`
すべての機能関連テキストを削除し、次のような出力を取得したいと思います。
GO:0005634`GO:0003677
この問題を解決するためにsedまたはawkを使用する方法がわかりません。
ノート:行の数が異なりますGO:xxxxxxx
。
ベストアンサー1
データがバックティックをレコード区切り文字として使用し、曲折文字をフィールド区切り文字として使用するようです。
printf 'GO:0005634^cellular_component^nucleus`GO:0003677^molecular_function^DNA binding`' |
awk -F '^' -v RS='`' -v ORS='`' '{ print $1 }'
これは各レコードの最初のフィールド(GO用語)のみを印刷し、バックティックを出力レコード区切り文字として使用します。
出力:
GO:0005634`GO:0003677`
(後行改行なし)