- 레코드 입력에서
$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
캡처링 그룹을 쉽게 추출할 수 있도록 하는 메서드에 대한 세 번째 매개변수를 지원합니다 . 배열의 첫 번째 요소는 전체 일치 항목을 갖습니다. 두 번째 요소에는 첫 번째 그룹과 일치하는 부품이 포함되고, 세 번째 요소에는 두 번째 그룹과 일치하는 부품이 포함됩니다.
답변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) 및/또는 특정 도구에서 사용되는 구분 기호를 충분히 고려하지 않기 때문에 명령줄 도구에서 사용할 정규식을 결정하는 데 사실상 쓸모가 없습니다. 도구가 역참조 및/또는 정규식의 텍스트 일치를 지원하는지 여부 및/또는 특정 도구의 특정 버전에 개인 확장이 있는지 여부 및/또는 도구에 정규식 표현식의 동작에 영향을 줄 수 있는 옵션이 있는지 여부