次の入力があります。
chr1 28374C T 0.0 PASS AF=0.730769;AO=19;DP=26;
chr1 29631A G 0.0 PASS AF=0.6;AO=6;DP=10;
chr1 39322CAC ACC 0.0 PASS AF=0.266667,0.266667;AO=4,4;DP=16;
最初のAF = [0-9]を使いたいです。 「;」で列を区切っていますが、最初の項目だけをインポートする方法がわかりません。だから私はawkを使用しました。
cat file | awk '{split($6,a,";"); print a[1]}'
これは作る:
AF=0.730769
AF=0.6
AF=0.266667,0.266667
しかし、私はただ次のことをしたいと思います:
AF=0.730769
AF=0.6
AF=0.266667
答え1
split
awkの関数は正規表現を区切り文字として使用するため、次のすべてを含む正規表現を使用できます。;
,
awk '{split($6,a,/[;,]/); print a[1]}' file
(cat
総額は必要ありません|
)。別の区切り文字を使用して2回分割することもできます。
awk '{split($6,a,/;/); split(a[1],b,/,/); print b[1]}' file
答え2
$ awk -F'[[:space:],;]+' '{print $6}' file
AF=0.730769
AF=0.6
AF=0.266667