LINUX.ORG.RU
$ cat test.txt
aaa $PWD bbb ccc $USER ddd eee
PWD $LANG kuku $PS1 $SHELL meme

$ cat test.txt | perl -pe 'while (/(\$\S+)/) { $b=`echo $1`; chomp $b; s!(\$\S+)!$b!;}'
aaa /home/sergey bbb ccc sergey ddd eee
PWD en_US.UTF-8 kuku  /bin/bash meme
sdio ★★★★★
()
Ответ на: комментарий от sdio
$PS1 -- в неинтерактивном шеле не определен.
sdio ★★★★★
()
DELIMITER=`dd if=/dev/urandom bs=16 count=1 2>/dev/null | base64` FILENAME=test.txt

(echo "cat << $DELIMITER"; cat "$FILENAME"; echo "$DELIMITER") | sh

rymis ★★
()
За eval спасибо, perl я не понимаю поэтому пробовать не стал.

А rymis я так понимаю решил проявить свое аторофированное чувство юмора?

Fredy
() автор топика
Ответ на: комментарий от Fredy
> А rymis я так понимаю решил проявить свое аторофированное чувство юмора?

почему? У него аналог eval echo.

cat << xxx раскрывает переменные, если xxx не в одинарных кавычках. Более того, его решение сохранит индентацию.

dilmah ★★★★★
()
Ответ на: комментарий от Fredy
echo испортит пробелы, а мое решение нет. К сожалению я забыл отключить форматирование когда постил. Более того, я не убрал бы даже случайную генерацию разделителя: лишняя строчка не мешает.
rymis ★★
()
Ответ на: комментарий от Fredy
Упс разобрался, что сам дурак. Прошу прощения...

За вариант спасибо.

Fredy
() автор топика
configure использует sed для этих целей
Nihilist
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.