구문 분석한 후 다른 파일에 붙여넣는 방법

구문 분석한 후 다른 파일에 붙여넣는 방법

다음과 같은 파일이 있습니다 A.txt(필드 구분 기호 = ;).

kit;;;;;;;
Software Version = cti;;;;;;;
Date And Time of Export = 06/02/20  14:14:11;;;;;;;
Experiment Name = taqpath-AB17500-plate7587;;;;;;;
Instrument Software Version = ;;;;;;;
Instrument Type = sds7500fast;;;;;;;
Instrument Serial Number = ;;;;;;;
Run Start Date = Tue Jun 02 12:00:40 CEST 2020;;;;;;;
Run End Date = Tue Jun 02 13:14:42 CEST 2020;;;;;;;
Run Operator = FE;;;;;;;
Batch Status = VALID;;;;;;;
;;;;;;;

그리고 B.csv(필드 구분 기호 = \t):

Well    Cycle   Target Name Rn  ΔRn Sample Name 
A1  1   N gene  512629.375  1004.0445   B1000-1 
A1  2   N gene  515089.2188 2157.2146   B1000-1 
A1  3   N gene  514001.7812 -236.8966   B1000-1

네 번째 행을 구문 분석하고 다음과 같이 A.txt일부 정보를 마지막 열에 붙여넣고 싶습니다 .B.csv

Well    Cycle   Target Name Rn  ΔRn Sample Name Plate Name
A1  1   N gene  512629.375  1004.0445   B1000-1 plate7587
A1  2   N gene  515089.2188 2157.2146   B1000-1 plate7587
A1  3   N gene  514001.7812 -236.8966   B1000-1 plate7587

B.txt유사한 구문 분석 부분을 시도했지만 작동하지만 마지막 열에 붙여넣고 "보드 이름"을 제목으로 추가하는 방법을 모르겠습니다 .

awk 'BEGIN{OFS=FS=" = "} NR==4{split($2,a,"-")}

어떤 아이디어가 있나요?

감사해요

답변1

A.txt에 실험 이름만 있는 경우 다음을 수행할 수 있습니다.

$ awk -F";" '/Experiment Name/{ split($1,a,"-"); } NR>FNR{ if(FNR==1) print $0" Plate name"; else print $0" "a[3] }' A.txt B.csv  > tmp && mv tmp B.csv
Well    Cycle   Target Name Rn  ΔRn Sample Name  Plate name
A1  1   N gene  512629.375  1004.0445   B1000-1  plate7587
A1  2   N gene  515089.2188 2157.2146   B1000-1  plate7587
A1  3   N gene  514001.7812 -236.8966   B1000-1 plate7587

답변2

v1=`awk 'NR==4{print $0}' p3| awk -F "-" '{gsub(";","",$3);print $3}'`

 awk -v v1="$v1" 'BEGIN{print "Well Cycle Target Name Rn ΔRn Sample Plate Name"}NR>1{$NF=v1;print }' p4

산출

Well Cycle Target Name Rn ΔRn Sample Plate Name
A1 1 N gene 512629.375 1004.0445 plate7587
A1 2 N gene 515089.2188 2157.2146 plate7587
A1 3 N gene 514001.7812 -236.8966 plate7587

관련 정보