質問 |
||
| QNo.3968332 | kシェルスクリプト内に行を挿入 | |
|---|---|---|
| 質問者:lanlan1100 |
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 |
||
回答 |
|
| ANo.2 | >この行の意味はどういった感じの解釈をすればいいかもお聞きできると幸いなのですが、、、 ファイルに書くときは改行しますが、一行で書いたのでわかりにくかったかも。 {print} ・・・すべての行についてまずは表示 /コマンド3/{X=NR+1}・・・コマンド3が含まれる行について、行番号+1を覚えておく NR==X{print "echo ttttttt"}・・・行番号がさっき覚えた数(コマンド3がふくまれる次の行)と等しいなら文字列を出力 |
|---|---|
| 回答者:notnot | |
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| 回答日時: 08/04/23 23:26 |
|
| |
| この回答へのお礼 | ありがとうございます。 |
回答良回答20pt |
|
| ANo.1 | コマンド3という文字列のある行の次の次に追加ですよね? sedでも出来そうな気もしますが、安易にawkで。 awk '{print}/コマンド3/{X=NR+1}NR==X{print "echo ttttttt"}' file |
|---|---|
| 回答者:notnot | |
| 種類:回答 どんな人:一般人 自信:自信あり |
|
| 回答日時: 08/04/22 22:23 |
|
| |
| この回答へのお礼 | できました。 ありがとうございます。 awkなど、なかなかうまく使いこなせないのですが、 この行の意味はどういった感じの解釈をすればいいかもお聞きできると幸いなのですが、、、 |