• ベストアンサー

シェルスクリプト複数の配列を使用したループ処理

bashシェルスクリプトの素人です。 IPアドレスを1行に1つずつ記したファイル IP.txt と、IDを1行に1つずつ記したファイル ID.txt があります。 これらのファイルを使用して下のコマンドをすべてのIPアドレスに対して実行した結果を得たいです。 コマンド▲IPアドレス▲ID > result.txt IPアドレスの配列と、IDの配列を作成し、それをforでループさせれば良いのではと考え、Webで調べましたが実現方法がわからず困っています。 素人質問で申し訳ありませんが知恵を貸してください。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10361)
回答No.2

pasteコマンドでファイルを横に連結すれば、配列を使う必要は無い。 paste IP.txt ID.txt | while read ip id do コマンド $ip $id done > result.txt bashの配列に入れるのだとすると ip=(`cat IP.txt`) id=(`cat ID.txt`) for i in ${!ip[*]} do コマンド ${ip[$i]} ${id[$i]} done > result.txt >Webで調べましたが実現方法がわからず困っています。 man bash を見ましょう。

beginner-de
質問者

お礼

ありがとうございます! 参考にさせてもらい実行したところ望んだ結果をえられました!!

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「実現方法」ってのは, 具体的にはどこの「実現方法」がわからないんでしょうか? 配列を作るところ? for でループ? 実際にコマンドを実行すること?

beginner-de
質問者

補足

Tacosanさま わかりづらい表現ですみません。 提示してもらいました三点ともわかりません。

関連するQ&A