2016-06-21 82 views
0

被更新以一個文件I具有在該位置〜/桌面/測試/ dummy.txt文件與以下文本命令行輸出應在特定線

[client] 
clientName = 

[servername] 
testserver-1 

的dummy.txt文件應得到與hostname -s輸出,在結束「CLIENTNAME =「行

+2

所以你嘗試了什麼?請檢查[問]。 – fedorqui

+0

並不重要,但是...該配置文件沒有任何意義。爲什麼會有'[servername]'部分?爲什麼'testserver-1'本身就是一條線?這麼多的問題! – Kusalananda

回答

2

如果你想命令hostname -s的結果追加在dummy.txt文件更新,你可以試試這個:

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

它將主機名作爲變量傳遞,並在找到字符串clientName時追加它。


您還可以使用sed做同樣的:

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

/^clientName/是其subsitution s將應用的搜索模式。這個替換在行尾附加了shell命令$(hostname -s)的結果($

+0

它的工作,是否有可能使用sed命令? – Sai

+0

{$ 3 = hostname} 1是如何工作的?你能詳細說明嗎? – Sai

+0

'hostname'是使用'-v'選項設置的變量。 '1'是用於在AWK的默認操作的快捷鍵,這意味着'{打印}'(打印整行) – oliv