sed заменить 1 строку в файле всеми строками в файле - PullRequest
1 голос
/ 29 мая 2020

Допустим, у меня есть строка #SYM

Мне нужно заменить ее всеми строками из file1.txt

Можно ли сделать это с помощью sed?

Я пробовал sed 's/#SYM/file1.txt/' updater

Но это не сработало, потому что мне нужно загрузить file1.txt как строку, и я не знаю, как это сделать.

EDIT: I полагаю, что это может быть способ сделать это каким-то образом в сценарии оболочки.

EDIT2: Я также просто пробовал это:

#!/bin/bash value=$(<tools/symlink) sed -i 's/#SYM/$value/' META-INF/com/google/android/updater-script

1 Ответ

2 голосов
/ 29 мая 2020

Используйте команду r:

sed -e '/#SYM/ {r tools/symlink' -e 'd}' META-INF/com/google/android/updater-script
  • /#SYM/ {r tools/symlink, если строка содержит #SYM, добавьте содержимое tools/symlink
  • d}, затем удалите совпадающая строка
  • две команды разделены с помощью опции -e, потому что все, что находится после r, считается частью имени файла

Добавьте опцию -i, когда вы будете удовлетворены что работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...