No.2ベストアンサー
- 回答日時:
メインルーチン全体をループにして...って構造でできそうですが、詳細はプログラムを見ないことにはなんとも。
# 見ても作るかどうかはなんとも....
> また、 一つ目の引数1で 処理を行い、
> 結果が帰ってきたら 次の項目の引数1で実行というようにすることは可能でしょうか?
これも、おそらくは「可能」ですが、詳細がわからなければ、具体的な方法を提示することはできません。
単純に連続で実行するだけなら、テキストエディタの置換とか、sedとかを使って
perl スクリプト.pl B.txtの項目1 A.txt
perl スクリプト.pl B.txtの項目2 A.txt
perl スクリプト.pl B.txtの項目3 A.txt
....
ってファイルを作って、(windowsなら 〜.batってファイルにして)
sh ファイル とか (Windowsなら 〜.bat )
で実行する、という方法もあります。
No.3
- 回答日時:
> 結果が帰ってきたら 次の項目の引数1で実行
これの意味がなんとなくわかった気がする。
system "perl script2.pl /home/$file /home/matrix.tab $item.txt &";
system関数は、指定したコマンドを実行する関数です、
http://perldoc.jp/func/system
execも参照のこと。
http://perldoc.jp/func/exec
""なので、変数の展開等が行なわれ
perl script2.pl /home/引数2 /home/matrix.tab 引数1.txt &
を実行します。これは、同じコマンドをコマンドラインシェルから入力したのと同じことです。
コマンド入力時に、最後に& を付けると、終了を待たずにバックグラウンドで実行されます。
「一度に実行」されるのは、このためです。
&を取れば、終了まで待つので、負荷は軽くなります。
時間はかかるかもしれませんが。
No.1
- 回答日時:
求めている動作はどのようなものなのでしょうか? イメージをつかみやすくするような具体例を挙げることはできませんか?
あと, 補足の「結果が帰ってきたら 次の項目の引数1で実行」のところですが, 「次の項目の引数1で」とあるからにはそれぞれの項目ごとに「引数1」とか「引数2」とかがあるということですよね. 「項目」の形がまったく書かれていないのですが, これらの「引数」はどのように見分ければいいのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- 法学 全部取得条項付株式の取得と引換えにする株式の発行 申請書について 1 2022/12/21 17:32
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Chrome(クローム) Google Cromeのブックマークのリストの複数の項目を一括して消去する方法はないのでしょうか? 1 2023/08/16 21:15
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- 運転免許・教習所 自動車学校に通っており、先週から第二段階に入りました。来週の技能教習に、「駐停車」「方向転換・縦列駐 3 2022/10/14 22:26
- 英語 関係代名詞「非制限用法」が説明する先行詞が無冠詞複数形の場合「一般的総称」と見なすことの可否について 10 2022/07/20 10:19
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
PerlでUTF-8のファイルの文字列...
-
Perlで時間の計算
-
openした後、closeしないでプロ...
-
Perlで、「が」を、「...
-
Perlのエラーについてご教授く...
-
bashスクリプト
-
perlで2次元配列をサブルーチ...
-
perlのrequireの動き方について...
-
INDIRECT 横に再度抽出したい
-
Perlで縦横変換のような事をし...
-
perlの記述方法について
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perlソースコードをコンパイル...
-
プロシージャの戻り値を取得す...
-
system関数を使用してJava実行...
-
Perlで環境変数を設定するには
-
Perlのexitについて
-
Windows版Perlの標準入力&標準...
-
perl/tkを使って作ったGUIを実...
-
-i -e "s|^.|ok|" ./text どこ...
-
Perlでのプログラム実行方法
-
perlで 引数1を別リストの複数...
-
MediBang Paint Proについて
-
cgiを実行可能にするには
-
UNIX SUN Solarisで時間の演算
-
perlでコマンドプロンプト実行
-
テキストファイルに書き込めな...
-
pp (Perl Packager) で require...
-
Perl リスト内指定回数繰り返し
-
ActivePerlで#!/usr/bin/が無効
-
perlからcを呼び出す
-
CGI Chart::Gnuplotの使用法
おすすめ情報
また、 一つ目の引数1で 処理を行い、
結果が帰ってきたら 次の項目の引数1で実行というようにすることは可能でしょうか?
詳しく書かず申し訳ありません。
イメージとして、
perl script.pl 項目 B.txt(matrixデータ) という
B.txtの中から 項目A(例えばflower や drinkなど)の行を抽出して、スクリプト.plに書かれた計算をおこない 項目と計算結果をresult.txtに書き出すという処理を行います
B.txtの項目の中から、自分が調べたい項目名をC.txtに書き出していて、C.txtを読み込んでそれらの項目を順番に上記のコマンドで計算したいと考えています。
No.2の回答者様の説明どおり 順番にコマンドを書いてシェルスクリプトに入れることも考えたのですが、
項目が数百から数千項目あり、一度に実行すると負荷もかかるため 順番に項目を変えて、前の処理が終わった後に(もしくは一定時間ごとに)実行できればと思っています。
わかりづらい説明で申し訳ありません。
もともとのプログラム自体 過去の先輩たちが作っていて理解できていないので詳しく説明できません。このscript自体は 項目(item)をいれると、その項目を txtから抽出して各スクリプトに投げ込むというものだと思います。
!usr/bin/perl
use 5.12.0;
use warnings;
use autodie;
my$item = shift;
my$file = shift;
open (FI, '<', "/home/$file");
my$head = <FI>;
open (FO, '>', "$item.txt");
print FO $head;
while (my$result = <FI>){
if ($result =~ /^$item\t/){
print FO $result;
}
}
close FI;
close FO;
system "perl script2.pl /home/$file /home/matrix.tab $item.txt &";
…… exit;
このようなスクリプトです。