• ベストアンサー

連番で出力したい

以下のような感じで、url.txtに書いてあるURLを落として連番で保存したいんですが、やり方がわかりません(wgetに限らずほかのコマンドも連番したいときがよくあります)。 環境はcygwinです。シェルの種類は何でも結構です。どなたか教えてください! cat url.txt | xargs wget -o output■連番■.html

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

  • ベストアンサー
  • hasekyou
  • ベストアンサー率100% (1/1)
回答No.1

パイプを使う方法はわかりませんが、while文を使えば簡単にできます。シェルに限らずC言語等言語で共通して使えるアルゴリズムです。ご参考までに #/bin/bash count=0 while ... wget ... let count+=1 done

tianhe
質問者

お礼

遅くなりましたが、ご回答ありがとうございました。教えていただいた方法でやることにしました。

関連するQ&A

  • VISTAでのwgetのタスク登録方法

    wgetで、テキストファイルに羅列したurlのサイトを自動でダウンロードしたいのですが、 XPで使っていたときは、タスクに D:\wget\wget.exe -i url.txt と入力して、うまくいっていました。 しかし、vistaで同じことをしたいのですが、うまくいきません。 D:\wget\wget.exe 引数 -i url.txt としているのですが、間違っているでしょうか? コマンドプロンプトで直接 D:\wget\wget.exe -i url.txt と入力すると、狙い通りの動作をしてくれるのですが、 タスクに登録しても、時間がくると一瞬コマンドプロンプトの画面が映るだけで ダウンロード等せずに終了してしまいます。 どうかアドバイスをお願いします。

  • crulでリスト記載のURLの一部をファイル名に

    Mac環境(OS10.8.5)のターミナル利用 プログラミングは知識が無く、ネットで調べても自力では解決しなかったので、皆様のお知恵を頂ければ幸いです。 「url.txt」には下記のようなURLが複数記載されています。 ~.com/test/1594/data ~.com/test/6416/data ~.com/test/5168/data ※「1594」「6416」などの個所は、実際には規則性の無いランダムの10桁の数字となっております url.txtに記載されているURLについてですが、ここでは「~」を使って省略していますが、実際は各行にはhttpから始まるアドレスが記載されています。 cat test/url.txt | xargs -P3 -t -n1 curl -O 上記の状態では、出力されるファイルは「test」と言うファイル名のファイルが1つしか出来ません。(全て上書き保存されてしまうため) これを「1594.html」「6416.html」「5168.html」と言うように、1つ1つファイルを保存したいと思っております。 url.txtに記載されているURLの末尾が、全部違っていれば問題は無かったのですが、末尾が全部同じのため保存時のファイル名でつまづいてしまっています。 ここまで何とか自力で調べて出来たのですが、あと一歩をアドバイス頂ければ助かります。 何卒、よろしくお願い致します。

  • curlでファイル名にURLの一部を利用するには?

    Mac環境(OS10.8.5)のターミナル利用 プログラミングは知識が無く、ネットで調べても自力では解決しなかったので、皆様のお知恵を頂ければ幸いです。 「url.txt」には下記のようなURLが複数記載されています。 ~.com/test/1594/data ~.com/test/6416/data ~.com/test/5168/data ※「1594」「6416」などの個所は、実際には規則性の無いランダムの10桁の数字となっております cat test/url.txt | xargs -P3 -t -n1 curl -O 上記の状態では、出力されるファイルは「test」と言うファイル名のファイルが1つしか出来ません。(全て上書き保存されてしまうため) これを「1594.html」「6416.html」「5168.html」と言うように、1つ1つファイルを保存したいと思っております。 どのように記述をすれば良いのかアドバイスを頂けますでしょうか。 何卒、よろしくお願い致します。

  • cronのシェルスクリプトで特定のファイルを時間差で実行したい

    現在、下記内容を記述したシェルスクリプトを使っています。 #!/bin/sh cd /virtual/web/ wget test1.php -O result wget test2.php -O result wget test3.php -O result exit test1.php、test2.php、test3.phpを10分の間隔をあけて実行したいのですが、cron側で設定する以外にシェルスクリプト側で設定することは可能でしょうか? あと基本的なことなのですが、test.phpを実行したい(叩きたい)だけの場合、wgetではなく他のコマンドではできないでしょうか?このような場合はどんなコマンドが適切なのでしょうか?

  • diffコマンドにてテキスト出力

    こんばんは。教えてください! 以下のような2つのファイルがあるとします。 ・aaa.txt abc111 abc222 abc333 ・bbb.txt abc333 abc444 これを比較して、比較結果をテキスト出力したいです。 テキスト出力したい比較結果は (1)重複しているもの全てテキスト出力 (2)aaa.txtのみにあるものをテキスト出力 (3)bbb.txtのみにあるものをテキスト出力 また、(1)~(3)は別々のファイルに出力したいです。 diffコマンドで、 diff a.txt b.txt >> c.txt とすると、 1つのテキストファイル(c.txt)に (1)~(3)すべてが書かれてしまいます。 環境は、windows XPにてCygwinを使用しています。 diffコマンドでなくても構いません。 宜しくお願いします。

  • LinuxのtopコマンドでLoad Avgの行のみをテキスト出力方法

    LinuxのtopコマンドでLoad Avgの行のみをテキスト出力方法はありますか? 環境はMac miniで カーネルはDarwin Kernel Version 10.4.0 です。 FedoraやUbuntuなどとはコマンドのオプションや表示のされ方が違うみたいなので、 top -n 1 でコマンドを終わらせることが出来ず困っています。 他のLinuxでは top -n 1 | grep Cpu >> output.txt のようにしてCPUの状態を残すようなシェルを使ってCPUの状態をログ化していました。 ご教示願います。

  • c++ 入力、出力まわりについて

    Mac OSX 10.7.3です。 c++で書いたプログラムをコンパイルして以下のような数字の集まりを上の行から順に入力したいです。 このプログラムはこの数字列の値により出力をするものとします。 3 3 6 100 2 64 main.cppというコードを使っていて上の数字を保存した input.txtというファイルがあり、output.txtという出力ようのファイルがDesktop下にあります。 ここでターミナルで cd Desktop/ g++ -Wall main.cpp ./a.out < input.txt > output.txt とリターンしてもうまくoutput.txtに出力されません。

  • UNIX teeコマンドについて

    あるテストプログラムの実行結果をteeコマンドで、ログに追加出力しようとしています 以下の1.変更前の様にシェルスクリプトを作成しました。 このシェルスクリプトを実行するとteeコマンドが正常終了するので $? が常に0になってしまい、必ずOKになってしまいます 急いでいたので2.のように修正したのですが、テンプファイルを使わないでもうちょっとシンプルに作成する方法をご存知の方教えてください 1.変更前 ./testpgm | tee -a logfile.txt  if [ $? -eq 0 ] ; then  echo "OK,testpgm," | tee -a logfile.txt else echo "NG,testpgm," | tee -a logfile.txt fi 2.変更後 ./testpgm > tempfile.txt if [ $? -eq 0 ] ; then cat tempfile.txt>>logfile.txt cat tempfile.txt echo "OK,testpgm," | tee -a logfile.txt else cat tempfile.txt>>logfile.txt cat tempfile.txt echo "NG,testpgm," | tee -a logfile.txt fi rm tempfile.txt OSはAIXで、シェルはshのみ使用可です

  • Emacs上でmoreやlessが機能しない

    こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 Emacsのシェルモードでは、cygwinのbashを使っています。 このシェルモードで、ファイルをmoreやlessといったコマンドで表示しようとしても、 1ページずつ表示されず、catコマンドと同じように、一気に表示されます。 Emacsのシェルモードでは、moreやlessの1ページずつ表示する機能は、使えないのでしょうか? 以上の件について何かご存知の方がいらっしゃれば、是非教えて頂きたいと思います。

  • シェルスクリプトについて

    シェルスクリプト超初心者なので、どなたかにご教授をお願いできれば と思います。 行いたい処理は以下の通りです。 #fdisk -ul /dev/sda Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/sda1 * 63 208844 104391 83 Linux /dev/sda2 208845 83875364 41833260 8e Linux LVM とfdiskコマンドによって表示されたものに対して、 255 heads, 5221 cylinders, 83886080 sectors の部分を読み取り、output.txtに以下のように書き出したい。 # cat output.txt heads = "255" cylinders = "5221" sectors = "83886080" 以上ですが、どなたかサンプルコードを提供していただけないのでしょうか。 よろしくお願い致します。