OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

Cシェルでのファイルからの入力について

  • すぐに回答を!
  • 質問No.136792
  • 閲覧数6750
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 72% (27/37)

あるファイルが最終行になるまでに繰り返し実行するシェルを作りたいです。
とりあえずファイル名を1行ごとに5行程度入れてあるファイル「filemei」を作成しました。
そのファイルからファイル名を順番に取り出し、lsをするものを作ってみたのですが、うまくいきません。
とりあえず、繰り返しにはwhileやforeach、ファイルの読み込みにはawkを使ってみたのですが...
どなたか分かるかたがいれば教えて下さい。
無知なので、質問自体が訳が分からない場合があると思いますが、ご勘弁願います。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル13

ベストアンサー率 24% (357/1463)

とりあえず、
set a = $<
で、標準入力からの入力が一行、変数aに入ります。
例えば入力が
abcde 12345
であれば
$a = ( abcde 12345 )
となります。
abcde, 12345 はそれぞれ
$a[1], $a[2]
で参照できます。
ですから、
 while ( 条件 )
  set line = $<
  $line を処理
 end
のようにすれば、標準入力からの入力を一行ずつ処理できます。
これを例えばcommandというスクリプトにして
command < file
のようにすれば、指定したファイルからの入力を一行ずつ処理できます。
お礼コメント
tack15

お礼率 72% (27/37)

大変詳しい回答どうもありがとうございました。
勉強になりましたm(..)m
投稿日時 - 2001-09-18 09:32:52
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.2
レベル8

ベストアンサー率 50% (16/32)

sh で書けばこんな所? #!/bin/sh for i in `cat filemei` do ls $i done このシェルスクリプトをtest.shと名前を付けて保存したならば、 chmod +x test.sh として実行権を与えておけば、 test.sh と入力しただけで実行できます。 的外れ??
sh で書けばこんな所?

#!/bin/sh
for i in `cat filemei`
do
ls $i
done

このシェルスクリプトをtest.shと名前を付けて保存したならば、

chmod +x test.sh

として実行権を与えておけば、

test.sh

と入力しただけで実行できます。

的外れ??


  • 回答No.3
レベル8

ベストアンサー率 50% (16/32)

失礼致しました。Cシェルと書いてありましたね。 Cシェルはあまり使わないもので・・・。 以下のようにすれば良いようですよ。 #!/bin/csh foreach i (`cat filemei`) ls $i end ...続きを読む
失礼致しました。Cシェルと書いてありましたね。
Cシェルはあまり使わないもので・・・。

以下のようにすれば良いようですよ。

#!/bin/csh
foreach i (`cat filemei`)
ls $i
end
お礼コメント
tack15

お礼率 72% (27/37)

すごくシンプルな回答ありがとうございます。
まさしくこの方式で作成したいと思います。
助かりました。
投稿日時 - 2001-09-18 09:34:02
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ