• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルでファイルを読み込み、そのレコードを分解し、分解した文字列を使用)

シェルでファイルを読み込んで分解した文字列を使用してコマンドを発行する方法

このQ&Aのポイント
  • シェルスクリプトを使用してファイルを読み込み、レコードを分解し、分解した文字列を使用してコマンドを発行する方法について学びます。
  • ファイルを引数にしてシェルスクリプトを起動し、cutコマンドを使用してレコードを分解します。
  • ループを使用して分解した値を一つずつ取得し、コマンドを実行します。

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

  • ベストアンサー
回答No.3

awkを使えばどうでしょうか。 手元にマニュアルが無いので少々正しくないかもしれませんが、シェルから cat $1 | awk \ 'BEGIN {} { split($0,",",ARY1) split(ARY1[1],"=",ARY2) // aaaは先頭という判断です。また配列は1相対だったと思います。 CMD="java testcmd -a " ARY2[2] system(CMD) } END {}'

tetuya120
質問者

お礼

マニュアルがない環境での回答ありがとうございます。 split($0,ARY1,",") split(ARY1[1],ARY2,"=") splitの引数の順番を修正したら正しい結果を取得できました。 ただ、これらの作業は自分が確認できる環境ではない所で実施される予定です。 UNIXで動かすことは確認済みなのですが、awkは全てのUNIXに入っているものなのでしょうか?

その他の回答 (3)

回答No.4

#3です。splitすみませんでした。 awkはいわゆるUNIXであればOKです。 派生の、 nawk gawk 等かもしれませんが、どれでもOKです。

tetuya120
質問者

お礼

全ての関数の引数順番など覚えていられる訳ないので問題ないです。 awkについては勉強になります。 ありがとうございました。

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

ん~, 「aaa=○○の○○を使用してコマンドを発行したい」というのがあいまいで目的が分からん. 「結局のところ何をしたいのか」をもっと明確に書いてもらえれば答えようもあるかもしれんけど....

tetuya120
質問者

お礼

回答ありがとう御座います。 あるjavaのクラスに引数として渡したいです。 (つまり、そのjavaはファイルのレコードの数だけ実行される) 1レコード目 java testcmd -a testdata1 2レコード目 java testcmd -a hhogedata1 なので、例のようにechoと考えて頂ければ間違いないです。

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

ファイルの形式を変えられないのですか?1行に1ファイル名で=より後を書くようにすれば簡単ですけど。

tetuya120
質問者

お礼

回答ありがとう御座います。 ファイルの形式は変更できません。 ただ、改めて自分の質問を見直したら大分わかりにくい事に気づきましたので補足説明をさせていただきます。 ファイルは「1ファイル」で作成するシェルに引数としてPATHを渡します。 ./test.sh /tmp/data.dat そのファイルの中身は質問に書いた通りで間違いありません。 ファイル内に記述されているaaaaaaa=○○の○○の部分を抽出して、あるコマンド(上記例だとecho)を発行したいです。 文章がわかりにくくて申し訳ありませんが、回答をお待ちしております。 // 質問内容で「完全案を教えてください。」となっていますが「改善案」の間違いです。。

関連するQ&A