Как я заменяю маркер результатом 'pwd' в sed?

Метаклассы

, конечно:-) , Что такое метакласс в Python?

13
задан saffsd 27 July 2009 в 02:37
поделиться

3 ответа

Вам необходимо использовать другой символ вместо / , например:

sed 's?#REPLACE-WITH-PATH?'`pwd`'?'

, потому что / появляется в pwd ] вывод.

23
ответ дан 1 December 2019 в 21:12
поделиться
sed 's:#REPLACE-WITH-PATH:'`pwd`':' config.ini

Проблема заключается в правильном экранировании вывода pwd . К счастью, как и в vim, sed поддерживает использование другого символа-разделителя. В этом случае использование двоеточия вместо косой черты в качестве разделителя позволяет избежать проблемы с экранированием.

1
ответ дан 1 December 2019 в 21:12
поделиться

вместо того, чтобы возиться с такими кавычками, вы можете сделать это так

#!/bin/bash
p=`pwd`
# pass the variable p to awk
awk -v p="$p" '$0~p{ gsub("REPLACE-WITH-PATH",p) }1' file >temp
mv temp file

или просто bash

p=`pwd`
while read line
do
    line=${line/REPLACE-WITH-PATH/$p}
    echo $line    
done < file > temp
mv temp file
1
ответ дан 1 December 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: