2016-06-21 85 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