ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:lanlan1100 kシェルスクリプト内に行を挿入
困り度:
  • 困っています
kシェルスクリプトで質問です。

例えば、以下のようなファイルがあったとします
**********************************************
#!/bin/ksh

  if (条件式1) then
  コマンド1
  コマンド2
endif

if (条件式2) then
  コマンド3
  # aaaaaaaaaa
else
  コマンド4
endif

**********************************************

”コマンド3”の文字列をキーにして"# aaaaaaaaaa"の下に
「echo ttttttttt」
と、を追加するといった方法、ないでしょうか?
もちろん、viで開いて追加する・・・というのではなく、、、
awkやsed等々、コマンドで。ご存知の方いらしたらお願いします。

ps.
余力があればjavaでも検討したいとは思いますが、javaはまったく初心者。。
質問投稿日時:08/04/22 21:41
質問番号:3968332
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:notnot >この行の意味はどういった感じの解釈をすればいいかもお聞きできると幸いなのですが、、、

ファイルに書くときは改行しますが、一行で書いたのでわかりにくかったかも。

{print} ・・・すべての行についてまずは表示
/コマンド3/{X=NR+1}・・・コマンド3が含まれる行について、行番号+1を覚えておく
NR==X{print "echo ttttttt"}・・・行番号がさっき覚えた数(コマンド3がふくまれる次の行)と等しいなら文字列を出力
種類:回答
どんな人:一般人
自信:自信あり
回答日時:08/04/23 23:26
回答番号:No.2
この回答へのお礼ありがとうございます。

回答

良回答20pt

回答者:notnot コマンド3という文字列のある行の次の次に追加ですよね?
sedでも出来そうな気もしますが、安易にawkで。

awk '{print}/コマンド3/{X=NR+1}NR==X{print "echo ttttttt"}' file
種類:回答
どんな人:一般人
自信:自信あり
回答日時:08/04/22 22:23
回答番号:No.1
この回答へのお礼できました。
ありがとうございます。

awkなど、なかなかうまく使いこなせないのですが、
この行の意味はどういった感じの解釈をすればいいかもお聞きできると幸いなのですが、、、
最新から表示回答順に表示良回答のみ表示