角かっこ間のグループに一致する awk gensub 正規表現

角かっこ間のグループに一致する awk gensub 正規表現
  • レコード入力から$0
    -0.005 Tc 0.005 Tw [(T)-8.5(o)-3.2(p)-15.3(ik)]TJ
    
  • /1次のアドレスに出力してくださいgensub
    (T)-8.5(o)-3.2(p)-15.3(ik)
    

ベストアンサー1

$ s='-0.005 Tc 0.005 Tw [(T)-8.5(o)-3.2(p)-15.3(ik)]TJ'

$ # if you want to delete []TJ
$ echo "$s" | awk '{print gensub(/\[([^]]+)]TJ/, "\\1", "g")}'
-0.005 Tc 0.005 Tw (T)-8.5(o)-3.2(p)-15.3(ik)

$ # if you just want the portion inside []TJ
$ echo "$s" | awk 'match($0, /\[([^]]+)]TJ/, a){s = a[1]; print s}'
(T)-8.5(o)-3.2(p)-15.3(ik)

GNU awkmatchキャプチャグループを簡単に抽出できるようにするメソッドの3番目のパラメータをサポートします。配列の最初の要素には完全一致があります。第2の要素は第1のグループと一致する部品を含み、第3の要素は第2のグループと一致する部品を含む。

おすすめ記事