Я хотел бы использовать sed, чтобы найти что-то вроде #<file.sh>
, и заменить эту строку на содержимое file.sh.базовая система требует с bash и sed: заменить содержимое файла
Ближайший я получил
echo "#<file.sh>" | sed "s/\#<\(.*\)>/\1/"
И заменяет #<file.sh>
для file.sh
. Теперь я хотел бы заменить его на содержимое файла, а не на имя файла, которое я нашел.
Я пытался тогда
echo "#<file.sh>" | sed "s/\#<\(.*\)>/$(cat \1)/"
Но в конечном итоге говоря cat: 1: inexisting file or directory
, поэтому он пытается прочитать \ 1 вместо file.sh, который я сохранил в \ 1.
Это не так. Это сработало для вас? –
@ JoãoPintoJerónimo Да. Если вы используете 'GNU sed', это __should__. – devnull
Я думаю, что должен быть, я в ubuntu box ... Я получил это: sed: -e выражение # 1, символ 24: ссылка \ 1 недействительна в RHS команды ' –