Как вставить текст из одного файла в конец другого файла

Как вставить текст из одного файла в конец другого файла

13.02.2020 07:15:34 Просмотров 40 Источник

Как вставить текст из одного файла в конец другого файла, именно во вторую строку?

Есть такой ansible host file

[production]
linux1  ansible_host=

[same_cred:children]
production

Нужно после ansible_host= вставить текст из другого файла, в котором находится IP адрес, только он в том файле.

У вопроса есть решение - Посмотреть?

https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0#comment1860271_1082227
То есть, во втором файле нет ничего, кроме одной строчки с IP-адресом?
https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0#comment1860272_1082227
Нет,только ip address, из него нужно в то месте вставить

Ответы - Как вставить текст из одного файла в конец другого файла / Как вставить текст из одного файла в конец другого файла

Ainar-G

13.02.2020 07:34:15

Это простой скрипт для AWK:

/ansible_host=$/ {
    getline ip < "./ip.txt";
    print($0 ip);
}
! /ansible_host=$/ {
    print($0);
}
https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/1082238#comment1860291_1082238
Как то это не работает у меня, а не подскажите как это сделать через sed
https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/1082238#comment1860295_1082238
«Не работает» не информативно. Что и как не работает? Убедитесь, что вы подставили имя файла с айпишником, а также, что в хост-файле после ansible_host= строка заканчивается, а не пробелы какие-нибудь.
https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/1082238#comment1860297_1082238
И да, на sed тоже можно, но это будет сложнее, и я ещё не настолько мастер sed'а.
https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/1082238#comment1861246_1082238
sed -i -e "/ansible_host=/ s,$,$(cat ./ip.txt)\n," $MY_ANSIBLE_FILE_CONF не сработает? Там дальше можно крутить на тему... (я помню, что sed умел вроде из другого фала в буфер догружать, так что useless use of cat by me :-) )
https://ru.stackoverflow.com/questions/1082227/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%81%d1%82%d0%b0%d0%b2%d0%b8%d1%82%d1%8c-%d1%82%d0%b5%d0%ba%d1%81%d1%82-%d0%b8%d0%b7-%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0-%d0%b2-%d0%ba%d0%be%d0%bd%d0%b5%d1%86-%d0%b4%d1%80%d1%83%d0%b3%d0%be%d0%b3%d0%be-%d1%84%d0%b0%d0%b9%d0%bb%d0%b0/1082238#comment1861248_1082238
@0andriy Ну-у-у, через cat и я могу. Слабо с использованием команды r :-P ?
Закрыть X