큰따옴표로 묶인 주석을 제거해야 합니다.

큰따옴표로 묶인 주석을 제거해야 합니다.

큰따옴표로 묶인 문자열 메시지가 포함된 테스트 케이스가 있는데 큰따옴표로 묶인 데이터를 제거하고 싶습니다. 명령을 사용하여 주석 섹션 데이터를 삭제 했지만 awk작동하지 않습니다

awk '/^"/ { print }' full-case

입력 예:

case('pr_ua_sfochi', "Response:answer(amount(2370.09,usd)", price).

예상 출력:

case('pr_ua_sfochi',price).

조언해주세요.

awk '{gsub(/".*",/,"");print}' file.txt는 위의 경우에는 작동하지만 다음 경우에는 실패합니다. 여기서 두 번째 매개변수는 큰따옴표로 묶여 있습니다.

실제 사례:

case('pr_ua_sfochi',"
Response:

answer(amount(2370.09,usd),[[01AUG06SFO UA CHI Q9.30 1085.58FUA2SFS UA SFO Q9.30 1085.58FUA2SFS NUC2189.76END ROE1.0 XT USD 180.33 ZPSFOCHI                                                           164.23US6.60ZP5.00AY XF4.50SFO4.5]],amount(2189.76,usd),amount(2189.76,usd),amount(180.33,usd),[[fua2sfs,fua2sfs]],amount(6.6,usd),amount(                                                          4.5,usd),amount(0.0,usd),amount(18.6,usd),lasttktdate([20061002]),lastdateafterres(200712282]),[[fic_ticketinfo(fare(fua2sfs),fic([]),nvb([                                                          ]),nva([]),tktiss([]),penalty([]),tktendorsement([]),tourinfo([]),infomsgs([])),fic_ticketinfo(fare(fua2sfs),fic([]),nvb([]),nva([]),tktiss                                                          ([]),penalty([]),tktendorsement([]),tourinfo([]),infomsgs([]))]],<>,<>,cat35(cat35info([])))
.
02/20/2006 17:05:10 Transaction 35 served by static.static.server1 (usclsefat002:7551) running E*Fare version $Name: build-2006-02-19-1900                                                           $",
price(pnr(
        user('atl','1y',<>,<>,dept(<>,'0005300'),<>,<>,<>),
        [
                passenger(adt,1,[ptconly(n)])
        ],
        [

segment(1,sfo,chi,'ua','<>','100',20140901,0800,f,20140901,2100,'737',res(20140628,1316),hk,pf2(n,[],[],n),<>,flags(no,no,no,no,no,no,no,no                                                          ,no)),

segment(2,chi,sfo,'ua','<>','101',20140906,1000,f,20140906,1400,'737',res(20140628,1316),hk,pf2(n,[],[],n),<>,flags(no,no,no,no,no,no,no,no                                                          ,no))
        ]),[
                rebook(n),
                ticket(20140301,131659),
                dbaccess(20140301,131659),
                platingcarrier('ua'),
                tax_exempt([]),
                trapparm("trap:ffil"),
                city(y)
        ])).

답변1

awk를 사용하여 이 작업을 수행할 수 있습니다.

awk '{sub(/".*",/,"");print}' filename

관련 정보