sed를 사용하여 파일의 특정 문자열 바꾸기

sed를 사용하여 파일의 특정 문자열 바꾸기

다음 내용이 포함된 파일이 있습니다.

 {
  "applications": [
    {
      "id": 2537302,
      "name": "addressdb_prod",
      "language": "dotnet",
      "health_status": "unknown",
      "reporting": true,
      "last_reported_at": "2017-08-03T10:41:52+00:00",
      "application_summary": {
      "response_time": 5.04,
      more content here....
      and finally the following lines towards the end of the file
     },
      "links": {
        "application_instances": [],
        "servers": [],
        "application_hosts": []
      }
    }
    ],
  "links": {
    "application.servers": "/v2/servers?ids={server_ids}",
    "application.server": "/v2/servers/{server_id}",
    "application.application_hosts": "/v2/application/{application_id}/hosts?ids={host_ids}",
    "application.application_host": "/v2/application/{application_id}/hosts/{host_id}",
    "application.application_instances": "/v2/application/{application_id}/instances?ids={instance_ids}",
    "application.application_instance": "/v2/application/{application_id}/instances/{instance_id}",
    "application.alert_policy": "/v2/alert_policies/{alert_policy_id}"
  }
}

내가 원하는 것은 sed명령을 실행하여 다음 부분을 제거하는 것입니다.

{
  "applications": [

파일의 시작부터 다음 섹션부터 파일 끝까지.

],
  "links": {

답변1

파일에 다음으로 시작하는 다른 줄이 없다고 가정하면 ],삭제할 두 범위를 정의하는 것은 매우 간단합니다.

sed '1,/"applications": \[/d
     /^[[:blank:]]*\],/,$d' yourfile

관련 정보