- レコード入力から
$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 awk
match
キャプチャグループを簡単に抽出できるようにするメソッドの3番目のパラメータをサポートします。配列の最初の要素には完全一致があります。第2の要素は第1のグループと一致する部品を含み、第3の要素は第2のグループと一致する部品を含む。
答え2
$ echo '-0.005 Tc 0.005 Tw [(T)-8.5(o)-3.2(p)-15.3(ik)]TJ' |
awk '{print gensub(/.*\[([^]]+)]TJ/,"\\1",1)}'
(T)-8.5(o)-3.2(p)-15.3(ik)
regex101などのサイトは、正規表現バージョン(BRE、ERE、またはPCRE)および/または特定のツールで使用される区切り文字を十分に考慮していないため、コマンドラインツールで使用する正規表現を決定するのに事実上役に立ちません。ツールが逆参照および/または正規表現のテキストマッチングをサポートするかどうか、および/または特定のツールの特定のバージョンに個人拡張があるかどうか、および/またはツールに正規表現の動作に影響を与えるオプションがあるかどうか