Shell - заменить только номер в определенной строке на номер из другого файла

Я работаю над сценарием Shell, и мне нужно заменить только число в строке 13 числом из другого файла.

файл1:

line1
line2
...
Text: 95%
...

файл2:

98.4256

Результат должен выглядеть так:

файл1:

...   
Text: 98.4256%
...

В основном мне нужно заменить число перед% в файле 1 в строке 13 на число из файла 2 (число в файле 2 находится в строке 1).

Заранее спасибо за любые советы.


person Jack Payne    schedule 11.01.2017    source источник


Ответы (1)


sed "4 s/:.*/: $(cat file2)%/" file1
line1
line2
...
Text: 98.4256%
...

Измените 4 на любое другое число по вашему требованию.

Содержимое файла1

cat file1
line1
line2
...
Text: 95%
...

Содержимое файла2

cat file2
98.4256
person P....    schedule 11.01.2017
comment
Спасибо. Поскольку я также хотел сохранить изменения и не могу использовать -i в своей системе HP-UX, я смог сохранить изменения с помощью этого обходного пути: sed "4 s/:.*/: $(cat file2)%/" file1 > file1.tmp && mv file1.tmp file1 - person Jack Payne; 11.01.2017