次のファイルがあります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
4行目を解析し、次のようにいくつかの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