2014-09-05 81 views
0

我已经运行下面的命令,其输出的eth0的当前的IP地址,并将输出发送到一个名为ip.txtLinux的追加到单线在文件

ifconfig | grep -A 1 'eth0' | tail -1 | cut -d ':' -f 2 | cut -d ' ' -f 1 > ip.txt 

我有个第二配置文件文本文件。我想将新创建的文件ip.txt中的文本追加到此文件第2行的末尾。文件2有如下数据:

[[email protected]******]# cat File2.txt 
Device= 
IPADDR= 
NETWORK= 
NETMASK= 
....... 

我需要它看起来像这样

[[email protected]******]# cat File2.txt 
Device= 
IPADDR=someip 
NETWORK= 
NETMASK= 
....... 

这可能是可能使用AWK或sed的,但我似乎无法得到它的正常工作。你能帮我吗?

回答

0
sed -i "s/IPADDR=/IPADDR=`cat ip.txt`/g" File2.txt 
+0

@ senator404,做这项工作如预期? – 2014-09-05 08:44:45

+0

编辑:这工作完美,谢谢! – senator404 2014-09-05 09:37:40

+0

@ senator404,我不明白。这将修改问题中提到的F​​ile2.txt的内容。我错过了什么吗? – 2014-09-05 09:42:06

0

你可以试试下面的awk命令,

$ awk -v var=$(awk '{print $0}' ip.txt) '/IPADDR=/{$2=var; print$1$2}!/IPADDR=/{print}' File2.txt 
Device= 
IPADDR=someip 
NETWORK= 
NETMASK= 
+0

嗨,这将打印正确的信息到屏幕上,但我需要的是将信息复制到文件。谢谢 – senator404 2014-09-05 09:37:14

+0

你的意思是把它复制到另一个文件。然后使用'awk -v var = $(awk'{print $ 0}'ip.txt)'/ IPADDR =/{$ 2 = var;打印$ 1 $ 2}!/ IPADDR =/{print}'File2.txt> File3.txt' – 2014-09-05 09:38:34

+0

它将创建一个新文件file3.txt并将打印在控制台上的文本附加到该文件。 – 2014-09-05 09:39:11