- - PR -
Cシェルでファイル取得
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2006-11-10 15:37
Cシェル初心者です。
FTPでリモートホストにある、条件に当てはまる (例えばAAAで始まるxmlファイルのような) 複数のファイルを取得したいのですが、うまくできません。 mgetコマンドを使用できない環境で、 1件ずつファイルを取得しようとしています。 FTP中に、以下の3つのような方法を試してみました。 @ファイル名の一覧をローカルファイルに出力し、 そのファイルを読み込んで1件ずつ取得 nlist AAA*.xml local_file foreach file (`!cat local_file`) get $file end A変数にファイル名のリストを配列で格納し、1件ずつ取得 set file=`nlist AAA*.xml` while ($#file) get $file[1] shift $file end Bファイルをtarファイルにまとめて、tarファイルを取得 tar cf xml.tar AAA*.xml get xml.tar @とAは`コマンド`という箇所で無効なコマンドエラーになってしまい、 ファイルを取得できませんでした。 また、Bはtarファイルを作成するところでエラーとなってしまいます。 取得するファイル名、数ともに不明なので上記のように試してみたのですが。 なにか方法をご存知の方がいらっしゃいましたらご教授お願いいたします。 |
|
投稿日時: 2006-11-10 23:50
恥ずかしながら ftp client にリモートでコマンドを実行出来る機能があるとは、知りませんでした。
wget など client で mget 相当の処理をする方法も検討してみては如何でしょうか? |
|
投稿日時: 2006-11-13 10:18
>恥ずかしながら ftp client にリモートでコマンドを実行出来る機能があるとは、知りませんでした。
恐らく、リモートでサブコマンドではないコマンドを実行することは出来ないのだと思います。 本当に初心者ですので、「こんなの出来たらいいな」という思いで試したのですが、 ことごとくエラーになってしまいましたから。 今回は時間もなかったので、とりあえず以下の方法で対応しました。 @FTPでリモートホストに接続し、条件に当てはまるファイルのリスト(file.lst)を作成 AFTPを切断し、ローカルでfile.lstを開く Bファイル名を1件ずつ取得し、1件ごとにFTPで接続してファイルをgetする ただ、取得するファイルの数が多くなった場合に、 毎回FTPしてgetでは負荷がすごくかかってしまいそうなので、 Consoleさんのおっしゃってくれた「wget〜」の方法も調べてみたいと思います。 返答本当にありがとうございます。 またよろしくお願いいたします。 |
1
