2014-09-05 3 views
0

я запустить следующую команду, которая выводит текущий IP-адрес eth0 и отправляет вывод в текстовый файл с именем 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 или СЭД, но я не могу показаться, чтобы заставить его работать правильно. Вы можете помочь?

ответ

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

@ senator404, сделал эту работу, как ожидалось? –

+0

Редактировать: это работает отлично, спасибо! – senator404

+0

@ сенатор404, я не понимаю. Это изменяет содержимое файла File2.txt, как указано в вопросе. Я что-то упускаю? –

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

+0

, вы имеете в виду просто скопировать его в другой файл. Затем используйте 'awk -v var = $ (awk '{print $ 0}' ip.txt) '/ IPADDR =/{$ 2 = var; print $ 1 $ 2}!/IPADDR =/{print} 'File2.txt> File3.txt' –

+0

он создаст новый файл file3.txt и добавит текст, который был напечатан на консоли в этом файле. –

Смежные вопросы