プロが教える店舗&オフィスのセキュリティ対策術

Bシェルで、1文字づつ読み込む方法を教えてください。

次のように文字が並んでいて、
A B C D
E F G H
I J K L
M N O P
それぞれの番地と共に、上記の文字を出力する場合、
どのようにしたら宜しいでしょうか。

入力ファイル:test.txt
A B C D
E F G H
I J K L
M N O P

1 2 3 4
1 A B C D
2 E F G H
3 I J K L
4 M N O P

出力ファイル
A 1 1
B 2 1
C 3 1
D 4 1
E 1 2
F 2 2
G 3 2
H 4 2
I 1 3
J 2 3
K 3 3
L 4 3
M 1 4
N 2 4
O 3 4
P 4 4

番地に関しては、次のシェルを作成しましたが、
test.txtをどのように入力したら良いかが分かりません。

Xmax=4
Ymax=4
yy=1
while [ $yy -le $Ymax ] ; do
xx=1
while [ $xx -le $xMax ] ; do
echo $xx $yy | awk '{
printf(" %d %d ",$1,$2)
}' >>out.txt
xx=`expr $xx + 1`
done
yy=`expr $yy + 1`
done

宜しくお願いします。

A 回答 (1件)

自信はないけど read と set を組合せるのかなぁ? 例えば


yy=1
while read line; do
xx=1
set -f $line
while [ $# -gt 0 ]; do
echo $1 $xx $yy
shift
xx=`expr $xx + 1`
done
yy=`expr $yy + 1`
done < test.txt
のような感じ? 手元でテストしてないので全く自信ありませんし, Bourne shell で set -f が使えるかどうかもわかりませんが.
    • good
    • 0
この回答へのお礼

ありがとうございます。
教えていただいた通りで、問題なく起動しました。
大変助かりました。
本当にありがとうございます。

お礼日時:2007/03/06 12:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!