![Bash 스크립트의 패턴을 기반으로 여러 문자열 추출](https://linux55.com/image/160287/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98%20%ED%8C%A8%ED%84%B4%EC%9D%84%20%EA%B8%B0%EB%B0%98%EC%9C%BC%EB%A1%9C%20%EC%97%AC%EB%9F%AC%20%EB%AC%B8%EC%9E%90%EC%97%B4%20%EC%B6%94%EC%B6%9C.png)
디렉토리 목록을 생성하기 위해 쉘 스크립트를 작성 중입니다.
입력으로 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