Wienプログラムの次の出力ファイルがあります。
[1, 2],106
[1, 3],2556
[2, 3],5207
[1, 2, 3],232
[2],7566
[3],8840
[1],5320
次のスクリプトで、各行の結果番号を可変引数として取得するには、コマンドが必要です。
$area1=[1]以降の結果でなければならない、$area2=[2]以降の結果でなければならない、$area3=[3]以降の結果でなければならない、$n12=[2]以降の結果でなければならない] 結果。 [1, 2] 以降の結果、 $n13=[1, 3] 以降の結果でなければなりません。 $n23=[2, 3] 以降の結果でなければなりません。 ,3]以降の結果[1,2,3],
その後、この結果は、以下のスクリプトでベン図を描画するために使用されます。
cat << catfile >> $prefix1-VennDiagram.R
library(VennDiagram);
venn.diagram(
x = list(
"$sample1" = c(1:$area1, $(($area1+1)):$(($area1+$n12)), $(($area1+$n12+1)):$(($area1+$n12+$n123)), $(($area1+$n12+$n123+1)):$(($area1+$n12+$n123+$n13))),
"$sample2" = c($(($area1+$n12+$n123+$n13+1)):$(($area1+$n12+$n123+$n13+$area2)), $(($area1+1)):$(($area1+$n12)), $(($area1+$n12+1)):$(($area1+$n12+$n123)), $(($area1+$n12+$n123+$n13+$area2+1)):$(($area1+$n12+$n123+$n13+$area2+$n23))),
"$sample3" = c($(($area1+$n12+$n123+$n13+$area2+$n23+1)):$(($area1+$n12+$n123+$n13+$area2+$n23+$area3)), $(($area1+$n12+1)):$(($area1+$n12+$n123)), $(($area1+$n12+$n123+1)):$(($area1+$n12+$n123+$n13)), $(($area1+$n12+$n123+$n13+$area2+1)):$(($area1+$n12+$n123+$n13+$area2+$n23)))
),
filename = "$prefix1-VennDiagram.tiff",
col = "transparent",
fill = c("red", "blue", "green"),
alpha = 0.5,
label.col = c("darkred", "white", "darkblue", "white", "white", "white", "darkgreen"),
cex = 2.5,
fontfamily = "arial",
fontface = "bold",
cat.default.pos = "text",
cat.col = c("darkred", "darkblue", "darkgreen"),
cat.cex = 2.0,
cat.fontfamily = "arial",
cat.fontface = "italic",
cat.dist = c(0.06, 0.06, 0.03),
cat.pos = 0
);
catfile
Rscript $prefix1-VennDiagram.R
exit
答え1
これは一行です。
sed 's/^.*\],/ /' yourfile|tr -d '\n'|sed -e '$a\'
この項目をコマンドにオプションとして渡すと、最後の項目を削除してsed
使用できます。
sed 's/^.*\],/ /' yourfile|tr -d '\n'
答え2
awk
各行の最後のカンマ区切りフィールドを印刷してから(引数リストが制限を超えないと仮定して)、xargs
それらを単一行に組み合わせることができます。
$ awk -F, '{print $NF}' yourfile | xargs
106 2556 5207 232 7566 8840 5320