2016-08-11 2 views
0

기본적으로 단일 파일의 출력으로 여러 블록을 포함하는 XML 파일 응답을 처리해야합니다. 따라서 개별 블록을 유닉스의 개별 줄로 변환해야합니다.여러 줄 블록 응답을 개별 줄로 병합해야합니다.

소스 데이터 : 필요한

<xml.ValidateAddressResponse xmlns="http://www.pb.com/spectrum/services/ValidateAddress"> 
      <output_port> 
      <Address> 
      <Confidence>82</Confidence> 
      <RecordType>Normal</RecordType> 
      <CountryLevel>A</CountryLevel> 
      <ProcessedBy>USA</ProcessedBy> 
      <MatchScore>0</MatchScore> 
      <AddressLine1>1825 Kramer Ln</AddressLine1> 
      <City>Austin</City> 
      <StateProvince>TX</StateProvince> 
      <PostalCode>78758-4260</PostalCode> 
      <PostalCode.Base>78758</PostalCode.Base> 
      <PostalCode.AddOn>4260</PostalCode.AddOn> 
      <Country>United States Of America</Country> 
      <user_fields/> 
      </Address> 
      </output_port> 
      </xml.ValidateAddressResponse> 
<xml.ValidateAddressResponse xmlns="http://www.pb.com/spectrum/services/ValidateAddress"> 
      <output_port> 
      <Address> 
      <Confidence>82</Confidence> 
      <RecordType>Normal</RecordType> 
      <CountryLevel>A</CountryLevel> 
      <ProcessedBy>USA</ProcessedBy> 
      <MatchScore>0</MatchScore> 
      <AddressLine1>1825 Kramer Ln</AddressLine1> 
      <City>Austin</City> 
      <StateProvince>TX</StateProvince> 
      <PostalCode>78758-4260</PostalCode> 
      <PostalCode.Base>78758</PostalCode.Base> 
      <PostalCode.AddOn>4260</PostalCode.AddOn> 
      <Country>United States Of America</Country> 
      <user_fields/> 
      </Address> 
      </output_port> 
      </xml.ValidateAddressResponse> 

출력 :

<xml.ValidateAddressResponse xmlns="http://www.pb.com/spectrum/services/ValidateAddress"><output_port><Address><Confidence>82</Confidence><RecordType>Normal</RecordType><CountryLevel>A</CountryLevel><ProcessedBy>USA</ProcessedBy><MatchScore>0</MatchScore><AddressLine1>1825 Kramer Ln</AddressLine1><City>Austin</City><StateProvince>TX</StateProvince><PostalCode>78758-4260</PostalCode><PostalCode.Base>78758</PostalCode.Base><PostalCode.AddOn>4260</PostalCode.AddOn><Country>United States Of America</Country><user_fields/></Address></output_port></xml.ValidateAddressResponse> 
<xml.ValidateAddressResponse xmlns="http://www.pb.com/spectrum/services/ValidateAddress"><output_port><Address><Confidence>82</Confidence><RecordType>Normal</RecordType><CountryLevel>A</CountryLevel><ProcessedBy>USA</ProcessedBy><MatchScore>0</MatchScore><AddressLine1>1825 Kramer Ln</AddressLine1><City>Austin</City><StateProvince>TX</StateProvince><PostalCode>78758-4260</PostalCode><PostalCode.Base>78758</PostalCode.Base><PostalCode.AddOn>4260</PostalCode.AddOn><Country>United States Of America</Country><user_fields/></Address></output_port></xml.ValidateAddressResponse> 

이 경우에 저를 인도 해주십시오.

+0

아무 것도 시도하지 않았습니까? 너 어디서 정확히 붙어 있니? 스택 오버플로는 무료 프로그래머 용 웹 사이트가 아닙니다. – Carpetsmoker

+0

나는 파일 내에서 전체 메시지를 병합하고 두 개의 명령을 사용하여 한 줄로 변환하려고 시도했다. 둘 다 동일한 출력을 내고있다. 1) cat file.txt | tr -d "\ t \ n \ r" 2) perl -pe 's \\ s + // g'file.txt 그러나 그 후에는 검색 문자열을 기반으로 한 줄을 여러 줄로 나누고 싶습니다. ''라는 단어와 출력은 처음에 언급 된 것과 같아야합니다. –

답변

0
(echo v/\<xml.ValidateAddressResponse/-,.j; echo w) | ed file.txt 
관련 문제