ここから質問投稿すると、最大4000ポイント当たる!!!! >>

Solaris7でCシェルスクリプトを使っています。
lsで拾ったファイル名をforeach文でまわしてみたのですが
文字数(ファイル数?)の制限に引っかかってしまいうまく回りません。

そこで質問なのですが、
Solaris7のCシェルforeach文で回せる文字数の限度をご存知の方いらっしゃいましたらご教授下さい。
宜しくお願い致します。

A 回答 (1件)

確か行数制限だったと思います。


foreach 文は一時的に Memory に記録してぐるぐる回すものですので
記憶できる行数に制限があるはずです。

といっても物理的に Memory を増やしてもダメだったはずですので(同じ経験があります)

解決案としては
1.ls の出力をファイルに落として split で 500行に区切る(確か500 くらいならいけました)
xxx.aa のファイル処理を終えたら xxx.bb にいくようにする
2.while 文を使う

差ですが、foreach 文の方がメモリに格納して実施する為か
while と比べて処理は早いです。
大量のファイルを処理する時は foreach をお勧めします。
作るのが面倒ですが。。。
    • good
    • 0
この回答へのお礼

ご回答頂きありがとうございます。
とても参考になりました。
1000ファイルぐらいなのでsplitで区切ってforeachで回してみます。

お礼日時:2008/02/26 18:20

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


人気Q&Aランキング