0
テーブルのようなテキストファイルから情報を抽出しますテーブル形式。関心のある行は、各CSVファイルのコロン( ":")を含む唯一の行です。 。[表現型] [文字] _ [番号]そうするためにBASHは:持っているいくつかのCSVファイル出力、私は<strong>複数のCSVファイル</strong>と出力<strong>単一のテキストファイル</strong>(summary.txtには)からの関心</strong>の<strong>エキス1行にしたい
を.csvファイル、私はループの次のネストされたがあります:
#!/bin/bash
# Working directory
DIR_DATA=/mydirectory/mydata
# Declare an array with all phenotypes
declare -a CHUNK
readarray CHUNK < /mydirectory/phenotypes.txt
# Loop through phenotypes
let i=0
while ((${#CHUNK[@]} > i)); do
TMP=`echo ${CHUNK[i]} | tr -s " "`
# Copy phenotype name into output file
echo "$TMP" >> $DIR_DATA/summary.txt
# Copy line of interest (which contains the character “:”) into output file
for ALPHABET in a b c; do
for NUMBER in 1 2 3; do
# Copy interaction values
grep : $DIR_DATA/"$TMP"."$ALPHABET”_”$NUMBER”.csv >> $DIR_DATA/summary.txt
done
done
let i++
done
出力をCSVは、すべて次の名前構造を持つファイル次のようになります。
PHENOTYPE1
A_1 0.1 0.2 0.3 0.4
A_2 0.5 0.6 0.7 0.8
B_1 0.9 1.0 1.1 1.2
B_2 1.3 1.4 1.5 1.6
C_1 1.7 1.8 1.9 2.0
C_2 2.1 2.2 2.3 2.4
PHENOTYPE2
A_1 2.5 2.6 2.7 2.8
A_2 2.9 3.0 3.1 3.2
B_1 3.3 3.4 3.5 3.6
B_2 3.7 3.8 3.9 4.0
C_1 4.1 4.2 4.3 4.4
C_2 4.5 4.6 4.7 4.8
しかし、所望の出力は以下の通りです:
PHENOTYPE1 A_1 0.1 0.2 0.3 0.4
PHENOTYPE1 A_2 0.5 0.6 0.7 0.8
PHENOTYPE1 B_1 0.9 1.0 1.1 1.2
PHENOTYPE1 B_2 1.3 1.4 1.5 1.6
PHENOTYPE1 C_1 1.7 1.8 1.9 2.0
PHENOTYPE1 C_2 2.1 2.2 2.3 2.4
PHENOTYPE2 A_1 2.5 2.6 2.7 2.8
PHENOTYPE2 A_2 2.9 3.0 3.1 3.2
PHENOTYPE2 B_1 3.3 3.4 3.5 3.6
PHENOTYPE2 B_2 3.7 3.8 3.9 4.0
PHENOTYPE2 C_1 4.1 4.2 4.3 4.4
PHENOTYPE2 C_2 4.5 4.6 4.7 4.8
この最後の出力構造を得るためにスクリプトを変更するにはどうすればよいですか?
これは完全に機能しました!迅速なご回答をありがとうございました。 – Svalf