「これはヤバかったな」という遅刻エピソード

はじめまして。お教授下さい。><。


下記のようなファイルがあったとしまして、

それぞれ「;」までの文字列を、ファイルの頭からLOOPで取得して表示させたいと思っています。

↓↓(FILE_START)
aaa
a
aaa
;

bb
bb
bg;

ccccc;
↑↑(FILE_END)


【答え】
aaaaaaa;
bbbbbb;
ccccc;
(改行はあってもなくても、無視して頂いて問題ありません)


これを、kshで書くにはどうしたらいいでしょうか。
(見やすくレスポンスがいいと、とても嬉しいです。。)

初歩的な質問で申し訳ありません。

なにとぞ宜しくお願い致します。><。。

A 回答 (4件)

#2です。


こちらを使用して下さい。
--------------------------
#! /bin/ksh
while
readline
do
data=${data}${line}
last=`expr "$line":".*\(.\)$"`
case"$last"in
';')
echo$data
data=""
;;
*)
;;
esac
done
--------------------------
    • good
    • 0
この回答へのお礼

ありがとうございました!!><。

正規表現は、何度説明書を読んでもなかなか理解しづらく情けないですが、頑張って勉強しようと思います。


優しく教えて頂けて、本当に嬉しかったです。
><。。ありがとうございます!

お礼日時:2009/06/02 17:39

#2です。


#2の回答はだめですね。無視して下さい。
    • good
    • 0

#1です。


なるほどKorn shellですか。
以下のようなスクリプトを作成して下さい。(ファイル名をtest.shとします)
-----------------------
#! /bin/ksh
while
readline
do
case"$line"in
';')
echo$data
data=""
;;
*)
data=${data}${line}
;;
esac
done
-----------------------
つぎに、いかのようなデータを用意します。(ファイル名をdataとします)
------------------------
aa
a1
;
bb
bbbb
b2
;
ccc
dd
;
------------------------
test.sh < data と入力します。
画面に
aaa1
bbbbbbb2
cccdd
と表示されます。
solaris10(INTEL版)で動作確認済みです。
なお、シェルの質問は、C&C++でなく、その他(プログラミング)のほうが、回答がつきやすいと思いますよ。
    • good
    • 0

KSHってなんですか?

この回答への補足

ううう、すみません。><。

Korn Shellです。

大文字で書いたのが悪かったのでしょうか。
それとも、書く場所が悪かったのでしょうか。
><。。。

補足日時:2009/06/02 00:05
    • good
    • 0

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