• ベストアンサー

foreachの引数について

現在、foreachを使ったシェルを作成中なのですが、 そのシェルを実行すると「引数が多すぎます」という エラーが発生します。 処理の概要としては 1.あるフォルダにあるファイルの一覧をリスト   ファイルにはきだす。 2.リストファイルの中身である文字列を含む   場合にのみechoをかける。 です。 リストファイルの中身が1000件を超えると「引数が~」の エラーがでます。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • psyren
  • ベストアンサー率46% (7/15)
回答No.3

foreach なので、csh じゃないかと思うのですが、 csh の引数を扱える制限に引っかかっているかと思います。 man csh の最後の方に制限事項が書いてあるので、確認してみて下さい。 sh には制限ありませんし、スクリプトを書くのであれば、csh 以外をおすすめします。

vivid_goo
質問者

補足

回答ありがとうございます。 やはりARG_MAXの制限でしょうか? 現在、1Mとしているのですが。。。 そんなに容量があるようには思えないの ですがねぇ。。。 csh以外で頑張ってみます。ありがとう ございました!!

その他の回答 (2)

  • utf7
  • ベストアンサー率29% (11/37)
回答No.2

やりたいこととしては、「あるディレクトリ配下にあるファイル全てに対し、特定の文字列を含むものを抽出する」ということでしょうか。 その場合、foreachは使用せずに、単純に % ls | grep (特定の文字列) > (リストファイル) でいいと思います。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

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

関連するQ&A