パターンに一致する行から値を抽出する

パターンに一致する行から値を抽出する

パターンマッチング後、N行目の値を抽出しようとしています'kappa (ts/tv) ='。次のコマンドを使用してawkを使用しています。

awk '/kappa (ts/tv) =/{print $NF}' text.txt

しかし、エラーが発生しました。

awk: cmd. line:1: error: Unmatched ( or \(: /kappa (ts/

「sed」を使用してもこのエラーが発生します。ここに正規表現の内容が欠けていることを知っています。

誰でもどんな提案をすることができますか?

ベストアンサー1

そこに2つの質問があります。まず、一致演算子を/区切り文字として使用します。しかし、探しているパターンには/

/kappa (ts/tv) =/

/kappa (ts/次のように解釈されると、tv) =/構文エラーが発生します。脱出/して成功しなければなりません\/。次に、括弧は正規表現の文脈で特別な意味を持ちます(一部とにかく正規表現スタイル):一致するグループをキャプチャするために使用されます。したがって、必要なタスクを実行するにはエスケープも必要です。これらすべてを総合すると、次のようになります。

awk '/kappa \(ts\/tv\) =/{print $NF}' text.txt

おすすめ記事