dポイントプレゼントキャンペーン実施中!

現在、foreachを使ったシェルを作成中なのですが、
そのシェルを実行すると「引数が多すぎます」という
エラーが発生します。

処理の概要としては
1.あるフォルダにあるファイルの一覧をリスト
  ファイルにはきだす。
2.リストファイルの中身である文字列を含む
  場合にのみechoをかける。
です。

リストファイルの中身が1000件を超えると「引数が~」の
エラーがでます。
よろしくお願いします。

A 回答 (3件)

foreach なので、csh じゃないかと思うのですが、


csh の引数を扱える制限に引っかかっているかと思います。

man csh の最後の方に制限事項が書いてあるので、確認してみて下さい。

sh には制限ありませんし、スクリプトを書くのであれば、csh 以外をおすすめします。

この回答への補足

回答ありがとうございます。

やはりARG_MAXの制限でしょうか?
現在、1Mとしているのですが。。。

そんなに容量があるようには思えないの
ですがねぇ。。。

csh以外で頑張ってみます。ありがとう
ございました!!

補足日時:2005/01/05 13:16
    • good
    • 0

やりたいこととしては、「あるディレクトリ配下にあるファイル全てに対し、特定の文字列を含むものを抽出する」ということでしょうか。



その場合、foreachは使用せずに、単純に

% ls | grep (特定の文字列) > (リストファイル)

でいいと思います。
    • good
    • 0

何をやりたいのかさっぱり読みとれないので的外れかもしれませんが, xargs は使えませんか?

    • good
    • 0

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