
シェルの初心者です。よろしくお願い致します。
cシェル(csh)で、リストをforeachで1行ずつ取得しているのですが、「*(アスタリスク)」の値があると「一致しません」とエラーで落ちてしまいます。
「*(アスタリスク)」も正常に読んで、ループを回すことはできないのでしょうか?
foreach FILE ( \"`/bin/cat リストファイル名`\" )
リストは「|(パイプ)」区切りにしてあります。
foreachで一行ずつ、読んでループしています。
ご存知の方は、お力をお貸し下さい。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
csh縛りというのは宿題か何かですか?そうじゃないなら、cshは機能が貧弱なのでプログラム的な処理には向きません。
shを使いましょう。#!/bin/sh
while read FILE
do ....
done < リストファイル名
>リストは「|(パイプ)」区切りにしてあります。
例えば、リストファイルの中身が、
A|B|100
X|Y|123
の様になっているとすると、
#!/bin/sh
IFS="|"
while read F1 F2 F3
do ....
done < リストファイル名
で、各フィールドを別々に取り出せます。
どうしてもcshでしないといけない理由があるなら、set noglobで*や?のファイルマッチを無効にすればエラーは出ません。
#!/bin/csh
set noglob
foreach FILE (`cat リストファイル名`)
echo "$FILE"
end
ただ、おわかりかと思いますが、これは「1行ずつ読んでいる」訳じゃないです。データの途中に空白やタブが無いという前提で同じ動作になりますが。
回答ありがとうございます。
宿題というのか、うちの会社がそういう風潮になっているもんですから・・・。
set noglob
で出来ました。
感謝です。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの特定の行だけを読...
-
範囲指定したセルを1つずつ飛...
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
vb.netです。2次元配列の要素を...
-
VBAでの一時停止と再開の方法
-
Escキーを押すと、中断する時と...
-
VBAで3秒だけ時間を止めたい
-
エクセルの当番表を作っていま...
-
UWSCに制限時間を付けたいです
-
VB2010でCSVファイルの読み込み
-
ループ内での条件処理
-
vb.netからエクセル関数書き込み
-
円のHough変換をC言語で
-
alarmの使用について
-
PHPで今日の日付から3日後を表...
-
DoEventsが必要な理由について
-
GIFアニメをループさせたくない
-
objective-cの多重ループbreak
-
null 参照の例外が実行時に発生...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
CSVファイルの特定の行だけを読...
-
範囲指定したセルを1つずつ飛...
-
UWSCに制限時間を付けたいです
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
VBA for i=1 to lastrow
-
流れ図(フローチャート)が分か...
-
DOSコマンドのループ内のTIMEコ...
-
pythonでファイルのコメント行...
-
素数表について。
-
VBAでの一時停止と再開の方法
-
「偶数・奇数の和」のフローチ...
-
DoEventsが必要な理由について
-
vb.netです。2次元配列の要素を...
-
Do whileでExitせず、ループの...
-
ループフリー
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
おすすめ情報