скопируйте часть строки из файла 1 в определенное место в файле 2 с помощью sed или любой другой команды

#python #linux #bash #ubuntu #script

#питон #линукс #удар #ubuntu #скрипт

Вопрос:

привет, друзья, я новичок в терминале Linux и его командах, и мне нужна помощь, чтобы решить эту ситуацию:

у меня есть 2 файла :

 cat file1: line1 line2 key= line4   cat file2: line1 line2 line3 secret: 12345 line5  

что мне нужно сделать, это скопировать «12345» из file2 и вставить его перед клавишу «=» в file1 и главное, что секретное значение (в данном примере 12345) изменения в любое время и на другом сервере не 12345.как я могу сделать это с помощью sed или что-нибудь еще? спасибо за вашу помощь

Комментарии:

1. Используйте sed или grep для захвата секрета из файла 2 и сохранения его в переменной. Используйте это для создания sed -i команды, с помощью которой можно обновить файл1.

2. Добро пожаловать в Stack Overflow. Ожидается, что вы приложите усилия, чтобы решить проблему самостоятельно, прежде чем обратитесь к нам за помощью. Когда вы спрашиваете, как это сделать «с помощью sed или чего-либо еще», это предполагает, что либо у вас есть навыки в sed и любом другом инструменте, либо вы просто просите нас написать для вас команду, которую вы будете использовать, но не потрудитесь понять.

3. что ты пробовал? где ваш код?

4. спасибо @JohnBollinger , я сделал то, что ты сказал, и это сработало

Ответ №1:

Следующая команда должна работать в Ubuntu:

 cat file2 | grep "secret:" | tail -1 | sed 's/^secret://' | xargs -I{} sed -i 's/key=.*$/key={}/' file1  

Следующая команда работает на моем macOS:

 cat file2 | grep "secret:" | tail -1 | sed 's/^secret://' | xargs -I{} sed -i.backup 's/key=.*$/key={}/' file1  

Комментарии:

1. спасибо за ваш ответ , проблема решена с помощью @JohnBollinger