Bash 스크립트의 패턴을 기반으로 여러 문자열 추출

Bash 스크립트의 패턴을 기반으로 여러 문자열 추출

디렉토리 목록을 생성하기 위해 쉘 스크립트를 작성 중입니다.

입력으로 a는 긴 HTML 문자열을 받습니다:

https://www.mycompany.com/posts/aureliaflore_china-seoul-startup-activity-6571925510337728512-acAw","$type":"com.traver.voyager.feed.actions.Action"},
link to post","url":"https://www.mycompany.com/posts/aureliaflore_reuters-top-news-on-twitter-activity-6571392661482233856-T3dO","$type":
article","$type":"com.traver.voyager.feed.actions.Action"},{"actionType":"SHARE_VIA","text":"Copy link to post","url":"https://www.mycompany.com/posts/aureliaflore_are-you-thinking-to-the-benefits-of-digitalization-activity-6570119712154451968-927T","$type":"com.traver.voyager

출력을 쉽게 사용자 정의할 수 있도록 스크립트는 URL 테이블만 표시합니다.

https://www.mycompany.com/posts/aureliaflore_china-seoul-startup-activity-6571925510337728512-acAw
https://www.mycompany.com/posts/aureliaflore_reuters-top-news-on-twitter-activity-6571392661482233856-T3dO
https://www.mycompany.com/posts/aureliaflore_are-you-thinking-to-the-benefits-of-digitalization-activity-6570119712154451968-927T

검색 패턴은 ""로 시작합니다.https://www.", XXXXXX 문자(동적 크기), "(따옴표 추출 안 함)로 끝남

현재 솔루션은 cut -f를 기반으로 하지만 총 입력 크기가 동적이므로 패턴을 찾을 수 없습니다.

답변1

예제 데이터는 손상된 json 조각처럼 보이므로 jq이를 사용하여 필요한 것을 추출 해야 합니다.앞으로원본 입력에 무엇을 하든 다음과 같이 보이도록 하십시오.

그러나 보유한 콘텐츠에서 https://www큰따옴표 문자로 시작하고 이를 포함하지 않는 URL을 추출하려면 다음을 사용할 수 있습니다 grep.

$ grep -o 'https://www[^"]*' input.txt 
https://www.mycompany.com/posts/aureliaflore_china-seoul-startup-activity-6571925510337728512-acAw
https://www.mycompany.com/posts/aureliaflore_reuters-top-news-on-twitter-activity-6571392661482233856-T3dO
https://www.mycompany.com/posts/aureliaflore_are-you-thinking-to-the-benefits-of-digitalization-activity-6570119712154451968-927T

관련 정보