2016-06-21 6 views
0

でファイルを更新する必要があり、私は下のテキストコマンドラインの出力は、特定の行

[client] 
clientName = 

[servername] 
testserver-1 

ある場所〜/デスクトップ/テスト/ dummy.txtでファイルを持っている必要がありますdummy.txtファイルあなたはdummy.txtファイル内のコマンドhostname -sの結果を追加したい場合は、あなたがこれを試すことができ、「クライアント名=「行

+2

あなたは何を試しましたか? [尋ねる]をチェックしてください。 – fedorqui

+0

それは重要ですが、...設定ファイルは意味をなさない。 '[servername]'セクションはなぜですか? 'testserver-1'はなぜ単独の行にありますか?非常に多くの質問! – Kusalananda

答えて

2

の終わりにhostname -sの出力で更新されます:

awk -v hostname="$(hostname -s)" '$1=="clientName" {$3=hostname}1' dummy.txt 

ホスト名を変数として渡し、文字列がclientNameであるときに追加します。


また同じことを行うためにsedを使用することができます。

sed "/^clientName/s/$/ $(hostname -s)/" dummy.txt 

/^clientName/はsubsitution sが適用されるため、検索パターンです。置換によって、シェルコマンド$(hostname -s)の結果が行の末尾に追加されます($

+0

それは働いた、sedコマンドを使用することは可能ですか? – Sai

+0

{$ 3 =ホスト名} 1はどのように動作しますか?あなたは精緻化できますか? – Sai

+0

'hostname'は' -v'オプションで設定された変数です。 '1'は、 ' [展開-クライアント] クライアント名= [ターゲット・ブローカーテストファイル{印刷}'(行全体を印刷) – oliv

関連する問題