다음과 같은 항목이 포함된 개행으로 구분된 JSON 파일이 있습니다.
{"id":"eprints.ulster.ac.uk/view/year/2015.html","title":"Items where Year is 2015 - Ulster Institutional Repository","url":"eprints.ulster.ac.uk/view/year/2015.html"}
{"id":"eprints.ulster.ac.uk/view/year/2016.html","title":"Items where Year is 2016 - Ulster Institutional Repository","url":"eprints.ulster.ac.uk/view/year/2016.html"}
{"id":"eprints.ulster.ac.uk/view/year/2017.html","title":"Items where Year is 2017 - Ulster Institutional Repository","url":"eprints.ulster.ac.uk/view/year/2017.html"}
{"id":"eprints.ulster.ac.uk/10386/","title":"Structural performance of rotationally restrained steel columns in fire - Ulster Institutional Repos","url":"eprints.ulster.ac.uk/10386/"}
{"id":"eprints.ulster.ac.uk/10387/","title":"Determining the Effective Length of Fixed End Steel Columns in Fire - Ulster Institutional Repositor","url":"eprints.ulster.ac.uk/10387/"}
.id
나는 다음으로 시작하지 않는 블록 만을 원합니다 ."eprints.ulster.ac.uk/view/"
따라서 위의 코드 조각에서 스크립트가 실행되면 처음 3개 블록이 제거되고 나머지 블록은 다음과 같습니다.
{"id":"eprints.ulster.ac.uk/10386/","title":"Structural performance of rotationally restrained steel columns in fire - Ulster Institutional Repos","url":"eprints.ulster.ac.uk/10386/"}
{"id":"eprints.ulster.ac.uk/10387/","title":"Determining the Effective Length of Fixed End Steel Columns in Fire - Ulster Institutional Repositor","url":"eprints.ulster.ac.uk/10387/"}
누군가 awk
이 작업을 수행하는 스크립트를 작성하는 데 도움을 줄 수 있습니까?
답변1
Awk 솔루션을 구체적으로 요청한 경우:
awk -F\" '$4 !~ /eprints.ulster.ac.uk\/view/' file > newfile
답변2
답변3
관심 있는 분들을 위해 다음 명령을 사용하여 Raphael의 솔루션을 새 JSON 파일로 출력합니다.
cat uir-index.json| jq 'select(.id|startswith("eprints.ulster.ac.uk/view/")|not )' > cleaned-uir-index.json
출력 형식은 여러 줄의 코드 블록으로 돌아갑니다. 다음과 같이 "--compact-output/-c" 옵션을 사용하여 동일한 jq 명령을 실행했습니다.
cat uir-index.json| jq -c 'select(.id|startswith("eprints.ulster.ac.uk/view/")|not )' > cleaned-uir-index.json
그러면 정리된 파일이 개행 형식으로 출력됩니다.