0

ファイルからすべての行を出力し、そのファイルの別の行を最後に追加して、基本的に各行の一部からペアを作成するプログラムを作成しようとしています。行が同じ場合、何もしません。また、同じペアを繰り返さないようにする必要があります。ABはBAと同じ

要するに

ファイル入力:

otherstuff A
otherstuff B     
otherstuff C 
otherstuff D

出力:

A B
A C
A D
B C
B D
C D

これを BASH スクリプトで実行しようとしましたが、ネストされた while ループを機能させることができなかったため、問題が発生しました。最初の行を読み取り、他の行と比較して停止します (基本的に、上記の出力例では最初の 3 行のみを出力し、外側の while ループは 1 回だけ実行されます)。

また、MATLAB を使用してこれを行うことができると思うので、それを使用する提案も歓迎します。

これが私がこれまでに持っているbashスクリプトです。私が言ったように、外側のループは 1 回しか実行されないため、正しく出力されません。

#READS IN file from terminal
FILE1=$1
#START count at 0
count0=
exec 3<&0
exec 0< $FILE1

while read LINEa; do    
while read LINEb; do

    eventIDa=$(echo $LINEa | cut -c20-23)
    eventIDb=$(echo $LINEb | cut -c20-23)
    echo $eventIDa $eventIDb
done
done    
4

2 に答える 2

0

他のものは関係ないと仮定すると (それ以外の場合はもちろん後で追加できます)、これは Matlab でうまくいくはずです:

 combnk({'A' 'B' 'C' 'D'},2)
于 2013-05-03T16:09:39.810 に答える