텍스트를 찾고 해당 텍스트를 복사하는 방법은 무엇입니까?

텍스트를 찾고 해당 텍스트를 복사하는 방법은 무엇입니까?

많은 정보가 포함된 txt 파일을 생성하는 스크립트가 있습니다. 특정 텍스트가 있는지 확인한 다음 그 뒤에 있는 내용을 복사하고 싶습니다. 예를 들어, 다음은 txt 파일입니다.

blablablaWANTEDTEXT[TEXTTOCOPY]blablabla...

존재 하는지 확인 WANTEDTEXT하고, 존재한다면 다음 내용을 복사합니다 [.]TEXTTOCOPY

감사해요

답변1

> echo blablablaWANTEDTEXT[TEXTTOCOPY]blablabla... | 
> awk -v searchtext=WANTEDTEXT '$0 ~ searchtext "\\[.*\\]" {
    strstart=index($0,searchtext "[")+length(searchtext)+1;
    tmpstr=substr($0,strstart); sub("].*$","",tmpstr); print tmpstr; } '

TEXTTOCOPY

답변2

echo '....' | grep -oP 'WANTEDTEXT\[\K[^]]*'

grep이 모드에서 작동한다는 것은 PerlPerl 정규 표현식을 작성할 수 grep있고 -o평소처럼 전체 줄 대신 일치하는 부분만 인쇄된다는 것을 의미합니다.

참고: 왼쪽의 항목은 \K출력에 표시되지 않습니다. grep일치하지만 출력하지 않을 때 사용됨 을 나타내는 Guardian 플래그(뒤를 보지만 가변 길이임)입니다 .


결과:

TEXTTOCOPY

답변3

#!/bin/bash
greptext=$(echo blablablaWANTEDTEXT[TEXTTOCOPY]blablabla | grep "WANTEDTEXT")
if [[ -n $greptext ]]; then
  ftext=$(echo "blablablaWANTEDTEXT[TEXTTOCOPY]blablabla" | cut -d'[' -f2 | cut -d']' -f1)
  echo $ftext
fi

관련 정보